INSTALL_FAILED_TEST_ONLY

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來進行正常的安裝 。

以上內容就是本人在開發中遇到的問題及解決方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章