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

对于有些手机,比如 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.yyy
Success

首先将 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/python

import sys
import os
import 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]

print
print 'installing ' + apk_file
print

# 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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值