禁用 Android Studio 3.x 系列自带的 testOnly 属性,解决 debug 包安装失败的问题

不知道有没有人遇到过,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 文件的,可以自行添加一个,再将该属性添加其中。

长按识别二维码,关注我,一名爱叨叨的程序员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值