INSTALL_FAILED_TEST_ONLY
一、今天利用adb install 安裝apk文件 時,報INSTALL_FAILED_TEST_ONLY的錯誤,剛開始以爲是打包時哪裏不對了,可以利用androidStudio運行時,可以正常運行,利用adb install 運行會報錯,於是上網查找問題的原因
二、網上解決方案如下
1、在AndroidMainfest.xml中設置了apk屬性爲testOnly.
<appliaction
...
android:testOnly="false">
</application>
設置該屬性爲false或才刪除這個屬性,原因是qr忽略它是debug版本的apk檢測。
2、buile.gradle中設置修改屬性,注意這裏的gradle文件是project的gradle而不是app的gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.4.0-alpha3' //版本爲測試版
//這裏修改爲
classpath 'com.android.tools.build:gradle:2.4.0' //版本爲測試版
}
}
3、放大招
adb install -t *.apk
三、上面三種辦法 都試了一遍,只有第三種是可行的,但是第三種侷限性太強,只能用於強制讓它可以安裝執行,如果該apk發給別人,別人照樣裝 不上應用。故該方案還是不行。於是繼續找辦法 ,終於找到了真正的辦法
解決辦法:
1、把上面兩種方案的代碼添加到app中,然後進入androidStudio的build設置選項,點擊Build APK(s),這樣生成的.apk文件就可以成功的利用adb install 命令安裝程序了。問題完美解決。
解決方案參照網上http://blog.sina.com.cn/s/blog_6cbd24890102x0ki.html的博客
以下內容應該是源碼註釋,
Note: The Run button builds an APK with testOnly="true", which means the APK can only be installed via adb (which Android Studio uses). If you want a debuggable APK that people can install without adb, select your debug variant and click Build > Build APK(s).
也就是說,只要在AndroidStudio3.0內,點擊綠三角運行Run,跑出來的apk,一定是TEST_ONLY的。
意思是說,如果點擊androidStudio上的綠三角運行Run,它跑出來的apk文件 ,是TEST_ONLY的,如果利用adb install 安裝這個apk文件 ,即使裏邊都設置對了,它依然是裝不上的,故我們不應該利用run後的apk文件 來進行adb install安裝 ,而應該,在build設置中,執行Build APK(s),這樣生成的apk文件 纔可以利用adb install來進行正常的安裝 。
以上內容就是本人在開發中遇到的問題及解決方案。