adb INSTALL_FAILED_安装过程的遇到的问题汇总及解决方案

版权声明:出于感谢(如果有收获)或对知识的尊重,未经允许禁止转载 https://blog.csdn.net/bendan50/article/details/80848180

通过adb install apk时经常遇到一些安装失败的情况,遇到坑,好在最后都解决了。下面对这类问题进行汇总,可能还会不断更新吧。(没有人敢确定,今后的开发测试过程中不会又遇到类似的情况)。

问题的解决不是我独自想的,为表示感谢或对知识的尊重,首先将参考文献列出。

参考文献:

https://blog.csdn.net/zsr0526/article/details/53039050        INSTALL_FAILED_USER_RESTRICTED错误

https://blog.csdn.net/liuwanyouyue/article/details/78476907     Apk安装失败原因

https://blog.csdn.net/xiaoyaozaimz/article/details/78555667     INSTALL_FAILED_TEST_ONLY运行报错

https://www.cnblogs.com/H-BolinBlog/p/5402652.html      INSTALL_FAILED_UPDATE_INCOMPATIBLE


INSTALL_FAILED_USER_RESTRICTED

意思为:用户没有操作权限。

问题最可能出现的手机上,【打开开发者选项--打开USB安装】,即允许安装外部应用。

INSTALL_FAILED_TEST_ONLY

意思为:APK为测试版,不允许安装

出现的情况最可能是:使用android studio运行时可以安装,但将APK包拷到手机存储卡上进行安装时出现。

可能原因:

1、gradle文件中使用了测试版本

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0-alpha3'  
    }
    ...
}
将-alpha3去掉即可,修改后的代码略了。

2、AndroidMainfest.xml有测试版的设置

<appliaction
...
    android:testOnly="true"
...>
....
</application>

当然去掉即可

3、使用adb命令行的参数

adb install -t apk

参数为 -t 我猜测其含义为-test的意思。


INSTALL_FAILED_UPDATE_INCOMPATIBLE

意思为:更新不兼容

最可能出现的原因是:APK的签名与之前安装过的APK(两者的包名一样)签名不一致。即为手机系统认为明明是同一个应用(包名一致),可签名不一致,为了安全起见,禁止安装。

我当时遇到的情况是:测试加固之前APK是否正常使用,然后使用手机上点应用图标的方式删除了该APP;然后对APK进行加固,并重新安装时,报上述错误。

解决方案(不适用我遇到的情况):

1、更改包名。借助开发IDK, 以android studio为例


2、对于已经Root手机,解决方案可去见前面所列的【参考文献】。这里我略去。

3、适用我当时遇到的情况的解决方案:使用adb uninstall apk包名的方式删除应用。(多人说,在手机点击删除应用的方式不干净彻底)

我当时使用这个方法时,系统提示并没有该应用。【表情就是:什么鬼!!!既然没有该应用,为什么不让我安加固后的。不是删除不彻底吗?】至于什么,原理是怎样的我不清楚。那怎么?办法还是有的。我将加固之前的APK重新安装了一遍,然后再使用adb uninstall 进行删除。最后就可以使用adb install 加固后的apk。开心!!


刚才提到的签名问题,即加固之前与之后可能导致签名不一致,我参见了【参考文献】中的一种说法,并猜测的。即“APK安装失败原因”。


后面,将是一条很长很长的路。安静













猜你喜欢

转载自blog.csdn.net/bendan50/article/details/80848180