問(wèn)題:
打包發(fā)現(xiàn)無(wú)法安裝胚股,提示無(wú)法解析,使用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]
原因:
原來(lái)是Android Studio 3.0在平臺(tái)版本是android 7.0,在adb install *.apk 的manifest文件application標(biāo)簽里自動(dòng)添加 android:testOnly="true"屬性
但是使用Android Studio開發(fā)過(guò)程中發(fā)現(xiàn)可以直接安裝成功晃痴。經(jīng)過(guò)查詢資料發(fā)現(xiàn)在AndroidManifest.xml文件中添加了屬性testOnly=true残吩,
https://developer.android.com/guide/topics/manifest/application-element
反編譯當(dāng)前apk發(fā)現(xiàn)的確清單文件中的確新加了這個(gè)屬性,研究發(fā)現(xiàn)原來(lái)是Android Studio 3.0會(huì)在debug apk的manifest文件application
標(biāo)簽里自動(dòng)添加 android:testOnly="true"
屬性倘核,導(dǎo)致IDE中run跑出的apk在大部分手機(jī)上只能用adb install -t
來(lái)安裝泣侮。
解決:
方法1:(實(shí)測(cè) 無(wú)效)
修改AndroidManifest.xml 中android:testOnly="true" 改成 android:testOnly="false",或者直接去掉紧唱。方法2:(可以使用) 但是測(cè)試妹子不會(huì)活尊。。漏益。
adb install -t *.apk-
方法3:(一勞永逸)
在AndroidStudio3.0內(nèi)蛹锰,點(diǎn)擊綠三角運(yùn)行Run,跑出來(lái)的apk绰疤,一定是TEST_ONLY的铜犬。
所以打包方法不能直接點(diǎn)擊 綠三角運(yùn)行Run:
通過(guò)Build --> BUild Bundle(s) --> Build APK(s),構(gòu)建出的apk可以直接安裝