adb 安装出现 Failure [INSTALL_FAILED_VERIFICATION_FAILURE] 的解决方法

来源:互联网 发布:椰子油 炒菜 知乎 编辑:程序博客网 时间:2024/05/18 06:50

对于有些手机,比如 Lenevo A808t,在用 adb install -r 安装 apk 包时,会报如下错误,

Failure [INSTALL_FAILED_VERIFICATION_FAILURE]

参考 StackOverflow 后问题没有得到解决

由于在 android studio 下可以编译安装成功,发现 android studio 编译安装 apk 包的命令如下:

$ adb push /home/user/Documents/project/xxx/app/build/outputs/apk/app-server_local-debug.apk /data/local/tmp/com.xxx.yyy$ adb shell pm install -r "/data/local/tmp/com.xxx.yyy    pkg: /data/local/tmp/com.xxx.yyySuccess

首先将 apk 包 push 到 /data/local/tmp 目录下,然后使用 pm 安装命令 adb shell pm install -r 安装,便可以安装成功了。

最后给出简化版解决方案:

# 首先将 apk push 到 /data/local/tmp/xx 目录下>$ adb push xxx.apk /data/local/tmp/xxx# 然后直接在 /data/local/tmp/xx 下安装>$ adb shell pm install -r /data/local/tmp/xxx

为了简化上述安装操作,我使用 python 写了一个安装脚本,只需要输入 apk 包所在位置即可,调用命令如下:

>$ ./apkinstaller.py /path/to/apkfile.apk
#!/usr/bin/pythonimport sysimport osimport re# sys.argv 用于存储传递给 python 脚本的参数# 脚本名:    sys.argv[0]# 参数1:     sys.argv[1]# 参数2:     sys.argv[2]argslen = len(sys.argv)# 判断是否指定了要安装的 apk 包路径if argslen == 1:    print "Usage: apkinstaller.py [APK_FILE]"    print "Install apk to your mobile"    sys.exit(0)# 获取到 apk 包路径apk_path = sys.argv[1]# 判断 apk 文件是否存在if not os.path.exists(apk_path):    print apk_path + " : no such apk file"    sys.exit(0)# 截取到 apk 文件名apk_file = re.findall(".*/(.+\.apk)", apk_path)[0]printprint 'installing ' + apk_fileprint# python 调用 shell 脚本进行安装os.system('adb push ' + apk_path + ' /data/local/tmp/' + apk_file)os.system('adb shell pm install -r /data/local/tmp/' + apk_file)
阅读全文
0 0
原创粉丝点击