问题:
打包发现无法安装,提示无法解析,使用adb install 安装后提示INSTALL_FAILED_TEST_ONLY;
D:\WorkSpace\RenRenChe\DiDiDriving>adb install D:\WorkSpace\RenRenChe\DiDiDriving\app\build\outputs\apk\librarian_v1.0.5_105_20190218.apk
adb: failed to install D:\WorkSpace\RenRenChe\DiDiDriving\app\build\outputs\apk\librarian_v1.0.5_105_20190218.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
原因:
原来是Android Studio 3.0在平台版本是android 7.0,在adb install *.apk 的manifest文件application标签里自动添加 android:testOnly="true"属性
但是使用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
来安装。
解决:
方法1:(实测 无效)
修改AndroidManifest.xml 中android:testOnly="true" 改成 android:testOnly="false",或者直接去掉。方法2:(可以使用) 但是测试妹子不会。。。
adb install -t *.apk-
方法3:(一劳永逸)
在AndroidStudio3.0内,点击绿三角运行Run,跑出来的apk,一定是TEST_ONLY的。
所以打包方法不能直接点击 绿三角运行Run:
通过Build --> BUild Bundle(s) --> Build APK(s),构建出的apk可以直接安装