Android adb安装apk时提示Invalid APK file的问题
今天在使用adb命令安装apk时,无法安装成功,进入到androidsdk下的platform_tools下也是无法安装成功:
先贴一下我的调用过程
xu:~xiaokai$adbdevices Listofdevicesattached 0123456789ABCDEFdevice xu:~xiaokai$adbshell shell@T36DH_CM3:/$pminstall/Users/xiaokai/Downloads/app-release.apk pkg:/Users/xiaokai/Downloads/app-release.apk Failure[INSTALL_FAILED_INVALID_URI] 1|shell@T36DH_CM3:/$adbinstall/Users/xiaokai/Downloads/app-release.apk InvalidAPKfile:/Users/xiaokai/Downloads/app-release.apk 255|shell@T36DH_CM3:/$exit xu:~xiaokai$adbinstall/Users/xiaokai/Downloads/app-release.apk [100%]/data/local/tmp/app-release.apk pkg:/data/local/tmp/app-release.apk Success
adbdevices
首先调用了adbdevices,查看有没有可用的手机,`0123456789ABCDEFdevice`说明有可用的手机,
adbshell
然后进入手机,安装apk,
pminstall/Users/xiaokai/Downloads/app-release.apk
发现出现问题,
exit
退出前手机,进入root目录
adbinstall/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:\Users\leon>adbdevices Listofdevicesattached 0123456789ABCDEFdevice
可以看出,手机已经成功连上。
3、输入adbshell命令,进入shell模式。然后使用install命令安装上述apk文件。但是提示失败:
C:\Users\leon>adbshell shell@android:/$installD:\A_Download\demo.apk BusyBoxv1.20.2-jbbionic(2012-11-2517:47+0100)multi-callbinary. Usage:install[-cdDsp][-oUSER][-gGRP][-mMODE][SOURCE]...DEST Copyfilesandsetattributes -cJustcopy(default) -dCreatedirectories -DCreateleadingtargetdirectories -sStripsymboltable -pPreservedate -oUSERSetownership -gGRPSetgroupownership -mMODESetpermissions
分析了一下,原来是忘记使用pm前缀(关于install命令要加pm前缀的分析,请参见另一篇文章:安卓adb命令中pm工具的作用及用法详解)。于是修改命令:
shell@android:/$pminstallD:\A_Download\demo.apk pkg:D:A_Downloaddemo.apk Failure[INSTALL_FAILED_INVALID_URI]
仍然提示失败!
经过反复的分析,我认为应该是因为adb命令下,无法识别windows目录信息导致。也就是说,adb命令无法识别此处的“D:\A_Download\demo.apk”目录。也正是因为这样,所以它给出的失败原因是INVALID_URI。
为了解决这个问题,其实办法很简单,只要退出adbshell的环境就好。于是输入exit命令回退到windows的cmd环境下,然后使用adbinstall命令,果然就成功了。
shell@android:/$exit C:\Users\leon>adbinstallD:\A_Download\demo.apk [100%]/data/local/tmp/demo.apk pkg:/data/local/tmp/demo.apk Success
当然,上述思路只是我自己想当然的,必须验证一下是否真是这么回事。怎么验证呢?
如上所述,根据我的猜测,上述安装方式之所以会失败,是因为adb环境无法识别windows系统的目录格式。所以,如果我们提前把文件拷贝到手机中,然后再进入adbshell环境并install,免去shell环境识别windows目录格式的步骤,应该就能成功。
于是,我直接在cmd环境下把apk文件push到手机中,然后进入adbshell环境,运行pminstall命令,果然成功了!
C:\Users\leon>adbpushD:\A_Download\demo.apksdcard/demo.apk [100%]sdcard/demo.apk C:\Users\leon>adbshell shell@android:/$cdsdcard/ shell@android:/sdcard$pminstalldemo.apk pkg:demo.apk Success
所以,总之一句话,adbshell环境下,系统无法识别windows的目录格式,要么就退回到cmd环境下,要么就提前把windows的文件拷贝到手机中。类似的问题就不会再出现了!
搞定,收工!
以上这篇Androidadb安装apk时提示InvalidAPKfile的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。