apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]原因及问题解决

问题:

打包发现无法安装,提示无法解析,使用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可以直接安装


    apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]原因及问题解决_第1张图片
    image.png

你可能感兴趣的:(apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]原因及问题解决)