概述
Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
需求:
在 /data/app下放置预置apk, 开机让其自动安装.
因此建了个test目录
root@rk3288:/data/app # mkdir test
然后将test.apk放了进去.
现象:
重启开机后提示:
01-23 01:14:03.831 520 520 W PackageManager: Failed to parse /data/app/test:
No packages found in split
调试:
PackageParser.java:
private static PackageLite parseClusterPackageLite(File packageDir, int flags)
throws PackageParserException {
final File[] files = packageDir.listFiles();
if (ArrayUtils.isEmpty(files)) {
throw new PackageParserException(INSTALL_PARSE_FAILED_NOT_APK,
"No packages found in split");
}
......
}
这里只是将/data/app/test下所有文件(包括非apk文件)列出来,不应该出错.
后来发现是文件夹权限有问题.
解决方法:
root@rk3288:/data/app # chmod 777 test/
知识点:
1. Android5.1以后支持split apk来觉得apk过大和文件句柄超过65536的问题,
用adb install 或者 pm install的apk会在/data/app下创建一个目录,目录下面放置apk.
当然,如果是single apk, 直接放在/data/app下也是可以的.
2. 放置在/data/app下的apk pms不会默认检测马上安装,直到下一次重启才会被安装.
参考:
http://www.iloveandroid.net/categories/Android%E5%BA%95%E5%B1%82%E5%BC%80%E5%8F%91/page/3/
http://blog.csdn.net/kitty_landon/article/details/46443849
最后
以上就是聪明墨镜为你收集整理的[RK3288][Android6.0] 调试笔记 --- /data/app/预置apk安装失败的全部内容,希望文章能够帮你解决[RK3288][Android6.0] 调试笔记 --- /data/app/预置apk安装失败所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复