背景:
前几天测试找我拿测试包,我直接打包了个debug包用QQ丢给了他,本以为可以下班吃饭了,结果测试跑过来跟我说,你这包有问题啊,怎么一直装不上?“怎么可能!天才的我一直都可以装上啊!” “不信你过来看看”,然后测试在键盘上敲着熟悉的adb install ......,然后突然冒出:“Failur[INSTALL_FAILED_TEST_ONLY: installPackageLI]”。一开始我也不知道什么原因,就一直打着release包(装着本地服务数据),但是几次下来我蛋疼了,本来电脑运行就慢。后边我开始不耐烦了,开始查找原因。于是才有了下面的解决方案,可以供跟我遇到一样困惑的猿猿们参考。
向测试大佬拿的图
导致产生这个问题得原因:
Android Studio 3.0的时候为了不让开发者开发的测试包暴露自身的功能和数据,测试包只能通过IDE的run方式进行安装,或者通过测试的方式用adb install -t 进行安装,会在debug的apk包的manifest文件application标签里自动添加android:testOnly="true"属性。对于testOnly的作用大家可以查看链接https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html
如果想在手机上安装测试包的话,目前有两种解决办法:
第一种:直接在项目的根目录下找到gradle.properties文件,添加一下这行代码
android.injected.testOnly=false
第二种:采用adb的命令,说明该adb只供测试使用
adb -t install [apk]
注意:网上有些朋友说在清单文件的application中添加android:testOnly="false"属性,但是我尝试过了,这个没有用。