不知道有没有人遇到过,Android Studio 3.0 开始自带一个隐藏的功能,那就是编译打包 debug 包时,会自动在 apk 包的清单文件中加这么一句话:
android:testOnly="true"
该属性位于 AndroidManifest.xml 文件的 application 标签下,可以直接在 Android Studio 开发工具中打开 app/build/outputs/apk/debug/app-debug.apk 文件查看。
这带来的一个问题是,当你使用真机调试时,通过 run 操作安装 app-debug.apk 文件时失败了,错误提示信息如下:
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_TEST_ONLY
Installation failed due to: 'null'
Retry
这是因为国内一些安卓手机制作商定制的 Android 系统不允许安装含带这个属性的测试包。哪怕你使用 -t 参数通过 adb 安装也是不行的:
adb install -t app-debug.apk
Failure [INSTALL_FAILED_TEST_ONLY]
唯一方式就是禁止 Android Studio 生成 debug 类型的 apk 文件时自动添加这个属性。
打开项目根目录下的 gradle.properties 文件,添加一行:
android.injected.testOnly=false
就这么简单。
当然,也可以修改本地用户目录下全局 gradle 配置的 gradle.properties 文件,针对所有项目生效,不至于每一个项目都需要改变 gradle.properties 文件,一是麻烦,二是 git 版本控制下还需要提交到远程仓库中(毕竟不是每一个人都会遇到这样的问题,取决于 Android Studio 版本和调试的机器)。
查看本地全局 gradle 目录
默认情况下,用户目录 ~/.gradle 中是没有 gradle.properties 文件的,可以自行添加一个,再将该属性添加其中。
长按识别二维码,关注我,一名爱叨叨的程序员