造成這種錯誤的原因可能有很多,下面是我的解決過程,希望能對大家有所幫助!
背景:正在做一個手機藍牙的應用,在AVD上不支持,只能在真機上進行調試
平台:android 7.1.1 、Android studio3.0
問題:apk安裝失敗,提示:INSTALL_FAILED_TEST_ONLY
1、手機USB連電腦->打開手機開發者選項->打開USB調試
2、在Android Studio上點擊綠色運行按鈕,選擇自己的設備,點擊OK:
3、手機上一路允許,最后結果安裝失敗,結果如下。
4、一開始以為是手機禁止安裝未知來源程序,所以安裝失敗了!在設置手機安全設置里發現應用安裝已經被允許了,排除是手機的問題。
5、可能是Android studio的問題了,網上查一下這個問題,有很多解決辦法,可參考這篇博客http://blog.csdn.net/xiaoyaozaimz/article/details/78555667
里面的方法都試了一遍,都沒有解決。
6、最后看到一篇文章(傳送門)說,在studio3.0里,只要點擊綠色三角形的運行按鈕,默認都是testOnly="true":
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).
這段話字面的意思就是 testOnly=''true''就是說只能用ADB來安裝,如果不通過ADB來安裝就要選擇Build > Build APK(s)來生成APK。
其實不是很理解這段話的意思,到底是要用ADB還是不用ADB呢?
7、 先不管到底什么意思了,反正直接點擊運行是不行的。先嘗試用Build APK(s),看行不行。
8、Build > Build APK(s) , 然后再點擊運行按鈕,結果還是不行。
9、嘗試用APK安裝:打開cmd-> 進入APK目錄->輸入命令:adb install -r *.apk。報錯:
10、因為剛才最后是點擊運行按鈕生成的APK, 嘗試Build > Build APK(s)重新生成APK,運行命令
這就安裝成功了。(注意:想在cmd下直接運行adb命令, 要將先adb.exe所在的路徑添加到環境變量里去。...\android-sdk-windows\platform-tools)
總結:
1、錯誤原因:Android Studio3.0 直接點擊運行按鈕,會使testOnly屬性默認為true。
2、解決方法:先用Build > Build APK(s)生成APK,再在命令行下使用ADB安裝APK。