时间:2021-05-21
今天在使用adb命令安装apk时,无法安装成功,进入到android sdk 下的platform_tools下也是无法安装成功:
先贴一下我的调用过程
xu:~ xiaokai$ adb devicesList of devices attached0123456789ABCDEF devicexu:~ xiaokai$ adb shellshell@T36DH_CM3:/ $ pm install /Users/xiaokai/Downloads/app-release.apk pkg: /Users/xiaokai/Downloads/app-release.apkFailure [INSTALL_FAILED_INVALID_URI]1|shell@T36DH_CM3:/ $ adb install /Users/xiaokai/Downloads/app-release.apk Invalid APK file: /Users/xiaokai/Downloads/app-release.apk255|shell@T36DH_CM3:/ $ exitxu:~ xiaokai$ adb install /Users/xiaokai/Downloads/app-release.apk [100%] /data/local/tmp/app-release.apk pkg: /data/local/tmp/app-release.apkSuccessadb devices
首先调用了adb devices,查看有没有可用的手机,`0123456789ABCDEF device`说明有可用的手机,
adb shell
然后进入手机,安装apk,
pm install /Users/xiaokai/Downloads/app-release.apk
发现出现问题,
exit
退出前手机 ,进入root目录
adb install /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>adb devicesList of devices attached0123456789ABCDEF device可以看出,手机已经成功连上。
3、输入adb shell命令,进入shell模式。然后使用install命令安装上述apk文件。但是提示失败:
C:\Users\leon>adb shellshell@android:/ $ install D:\A_Download\demo.apkBusyBox v1.20.2-jb bionic (2012-11-25 17:47 +0100) multi-call binary.Usage: install [-cdDsp] [-o USER] [-g GRP] [-m MODE] [SOURCE]... DESTCopy files and set attributes -c Just copy (default) -d Create directories -D Create leading target directories -s Strip symbol table -p Preserve date -o USER Set ownership -g GRP Set group ownership -m MODE Set permissions分析了一下,原来是忘记使用pm前缀(关于install命令要加pm前缀的分析,请参见另一篇文章:安卓adb命令中pm工具的作用及用法详解)。于是修改命令:
shell@android:/ $ pm install D:\A_Download\demo.apk pkg: D:A_Downloaddemo.apkFailure [INSTALL_FAILED_INVALID_URI]仍然提示失败!
经过反复的分析,我认为应该是因为adb命令下,无法识别windows目录信息导致。也就是说,adb命令无法识别此处的“D:\A_Download\demo.apk”目录。也正是因为这样,所以它给出的失败原因是INVALID_URI。
为了解决这个问题,其实办法很简单,只要退出adb shell的环境就好。于是输入exit命令回退到windows的cmd环境下,然后使用adb install命令,果然就成功了。
shell@android:/ $ exitC:\Users\leon>adb install D:\A_Download\demo.apk[100%] /data/local/tmp/demo.apk pkg: /data/local/tmp/demo.apkSuccess当然,上述思路只是我自己想当然的,必须验证一下是否真是这么回事。怎么验证呢?
如上所述,根据我的猜测,上述安装方式之所以会失败,是因为adb环境无法识别windows系统的目录格式。所以,如果我们提前把文件拷贝到手机中,然后再进入adb shell环境并install,免去shell环境识别windows目录格式的步骤,应该就能成功。
于是,我直接在cmd环境下把apk文件push到手机中,然后进入adb shell环境,运行pm install命令,果然成功了!
C:\Users\leon>adb push D:\A_Download\demo.apk sdcard/demo.apk[100%] sdcard/demo.apkC:\Users\leon>adb shellshell@android:/ $ cd sdcard/shell@android:/sdcard $ pm install demo.apk pkg: demo.apkSuccess所以,总之一句话,adb shell环境下,系统无法识别windows的目录格式,要么就退回到cmd环境下,要么就提前把windows的文件拷贝到手机中。类似的问题就不会再出现了!
搞定,收工!
以上这篇Android adb安装apk时提示Invalid APK file的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
发现问题最近在AndroidN上安装Apk时报错:android.os.FileUriExposedException:file:///storage/emul
APK文件是android的应用程序安装文件,iphone是不能安装的。 APK是AndroidPackage的缩写,即Android安装包(apk)。APK
今天同学问到了apk怎么安装到模拟器上,研究一下,发现两种方法比较简单:一,把所要安装的apk,例xxx.apk拷贝到sdk下的adb的路径下,也就是和adb在
前言一般情况下,Android系统安装apk会出现一个安装界面,用户可以点击确定或者取消来进行apk的安装。但在实际的项目需求中,有一种需求,就是希望apk在后
安装到Android手机上的apk需要签名,本文描述了如何创建自己的签名及从Eclipse中导出apk。方法/步骤1、在Eclipse中选择一个Android工