今天,使用adb命令安装apk时无法安装。 进入android sdk下的platform_tools下也无法安装。
我会贴上我的呼叫流程
xu:~ xiaokai$ adb devices
设备列表附着
0123456789 abcdef设备
Xu :至xiaokai $ ADB外壳
shell @ t36dh _ cm :/$ pm install/users/xiaokai/downloads/app-release.apk
pkg :/users/xiaokai/downloads/app-release.apk
failure [ install _ failed _ invalid _ uri ]
1|shell @ t36dh _ cm :/$ ADB安装/users/xiaokai/downloads/app-release.apk
invalidapkfile :/users/xiaokai/downloads/app-release.apk
255|外壳@t36DH_cm3:/$exit
Xu :至Xiao kai $ ADB安装/users/Xiao kai/downloads/app-release.apk
[ 100 % ]/data/local/tmp/app-release.apk
pkg :/data/local/tmp/app-release.apk
Success
ADB设备
首先调用了adb devices,检查是否有可用的手机。 ` 0123456789ABCDEF device `表示有可用的手机。
ADB外壳
然后进入手机,安装APP,
pm install/users/xiaokai/downloads/app-release.apk
发现问题,
退出
退出前面的手机,进入根目录
ADB安装/users/xiaokai/downloads/app-release.apk
进行了安装,发现安装成功了,在网上查了一下。 下一篇文章介绍了这个问题的一些
补充文章: adb安装apk错误failure [ install _ failed _ invalid _ uri ]
今天,使用adb命令安装apk时出现了问题。 记录如下。
1、下载了demo.apk,放在D:A_Download目录中。
2、手机连接电脑,打开USB调试权限。 然后在计算机端启动cmd,并输入以下命令:
c :usersLeona db设备
设备列表附着
0123456789 abcdef设备
你会发现手机连接成功了。
3、输入ADB shell命令,进入shell模式。 然后,使用install命令安装上述apk文件。 但是提示失败了:
c:usersLeonadb外壳程序
shell @ Android :/$ installd 3360a _ downloaddemo.apk
busyboxv1. 20.2-JB bionic 652012-11-25173360470100 (多呼叫二进制)。
usage 3360 install [-CD DSP ] [-ouser ] [-ggrp ] [-m mode ] . dest
复制文件和集属性
- cjust copy (默认) ) )。
- d创建目录
- dcreateleadingtargetdirectories
-s Strip symbol table
- p保留日期
-o USER Set ownership
- g grp集组ownership
- m模式集权限
分析一下,原来忘了使用广告前缀。 (有关为install命令添加pm前缀的分析,请参阅另一篇文章“有关pm工具在AndroidADB命令中的作用和用法的详细信息”。 于是修改命令:
shell @ Android :/$ pminstalld 3360a _ downloaddemo.apk
pkg : d : a _ download demo.apk
failure [ install _ failed _ invalid _ uri ]
尽管如此,还是提示失败!
我认为原因是反复分析的结果,在adb命令下无法识别windows目录信息。 也就是说,adb命令无法识别此处的“D:A_Downloaddemo.apk”目录。 因此,失败的原因是INVALID_URI。
要解决这个问题,其实方法很简单,退出ADB外壳的环境就可以了。 于是输入exit命令返回windows的cmd环境,使用adb install命令,果然成功了。
壳牌@Android:/$exit
c :usersleonadbinstalld 3360a _ downloaddemo.apk
[100%] /data/local/tmp/demo.apk
pkg :/data/local/tmp/demo.apk
Success
当然,上述想法只是我自己认为是理所当然的,必须验证是否真的如此。 怎么验证?
如上所述,根据我的推测,上述安装方法之所以失败,是因为adb环境无法识别windows系统的目录格式。 因此,如果您事先将文件复制到手机上,然后进入ADB shell环境并安装,从而消除shell环境识别windows目录格式的步骤,就应该成功。
于是,我直接在cmd环境中将apk文件推送至手机,然后进入ADB shell环境,运行pm install命令,果然成功了。
c :usersleonadbpushd :a _ downloaddemo.apk SD card/demo.apk
[100%] sdcard/demo.apk
c:usersLeonadb外壳程序
壳牌@Android:/$CDSDcard/
hell @ Android :/SD card $ pminstalldemo.apk
pkg: demo.apk
Success
所以,简单来说,在ADB shell环境中,系统无法识别windows的目录格式,所以会将其放回cmd环境,或将windows文件复制到手机中。 同样的问题不会再发生了!
做完,把工作做完!
以上Android adb在安装apk时向invalid apk文件提出的问题是编辑与大家共享的所有内容。 希望能作为参考。 另外,我想支持褐家。