android开发,在命令行用adb install xxx.apk时显示"killed"

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Builder_Taoge/article/details/79486950
(无图,之前没来得及截图,写博客之前再次测试发现该问题消失,设备应该是做了系统升级,所以以下说明若有误,请见谅并给与指导)
在某androidTV上进行apk的测试,使用android studio直接安装debug版的apk时发现进度条显示install完成后却没有自动启动,然后也没有在设备中找到该apk,很明显是安装失败,但是没有任何错误或异常信息的提示(或许是有,存在于某个目录下,笔者不知道)。然后分别作了如下猜测以及尝试:

①怀疑是该电视默认禁止第三方的apk安装,于是找到设置里的"安全"选项,发现果然是禁止的,于是打开"允许"按钮后重新安装,结果还是失败的。

②怀疑是debug的keystore不合适,所以又正规签名后安装release版的apk,可惜还是失败。。。接着用命令行里的adb install...命令手动安装,发现安装100%以后没有显示success或者failed,只显示killed...

③考虑是内存不足,通过查看(命令行用df命令等),发现内存充裕;

最后将apk 用adb push 命令推到电视的mnt/sdcard目录下,用遥控点击安装,最后还是失败...不过在安装的时候因为安装apk前会弹出授权页面,也就是该apk会涉及到哪些权限,安装过apk的各位应该都看见过。从授权页面中发现需要"开机启动"这项权限,于是产生了第四种猜测:
④安装失败可能和接收开机广播有关!于是把清单文件中接收开机广播的权限注释掉重新编译安装,成功安装。

总结:因为不同厂家的设备具有自己的系统定制特点,有的会禁止普通第三方apk申请接收开机广播,以免太多的应用都可以开机自启动,严重占用设备启动时的内存,影响设备的流畅性。

展开阅读全文

没有更多推荐了,返回首页