https://blog.csdn.net/vfush/article/details/80320596
有一天给测试同学打了个deubg 包发现无法安装,提示无法解析,使用adb install 安装后提示INSTALL_FAILED_TEST_ONLY,原来是Android Studio 3.0会在debug apk的manifest文件application标签里自动添加 android:testOnly="true"属性
问题
在Android Studio进行开发的时候,生成的debug apk手动使用adb install无法安装,提示错误:
➜ apk adb install '/home/silver/桌面/share/apk/app-android-debug.apk'
adb server is out of date. killing...
* daemon started successfully *
5347 KB/s (8754206 bytes in 1.598s)
pkg: /data/local/tmp/app-android-debug.apk
Failure [INSTALL_FAILED_TEST_ONLY]
分析
但是使用Android Studio开发过程中发现可以直接安装成功。经过查询资料发现在AndroidManifest.xml文件中添加了属性testOnly=true,
https://developer.android.com/guide/topics/manifest/application-element
反编译当前apk发现的确清单文件中的确新加了这个属性,研究发现原来是Android Studio 3.0会在debug apk的manifest文件application标签里自动添加 android:testOnly="true"属性,导致IDE中run跑出的apk在大部分手机上只能用adb install -t 来安装。
解决方法一
在项目中的gradle.properties全局配置中设置:
android.injected.testOnly=false
1
解决方法二,加 -t :
adb install -t app-debug.apk
1
通过方法一设置后,反编译就没有属性testOnly=true了。
————————————————
版权声明:本文为CSDN博主「fuchenxuan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/vfush/article/details/80320596