[RK3288][Android6.0] 调试笔记 --- /data/app/预置apk安装失败
Posted KrisFei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[RK3288][Android6.0] 调试笔记 --- /data/app/预置apk安装失败相关的知识,希望对你有一定的参考价值。
Platform: ROCKCHIPOS: 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] 调试笔记 --- hwclock命令无法使用
[RK3288][Android6.0] 调试笔记 --- pmu(rk818)寄存器读写
[RK3288][Android6.0] 调试笔记 --- /data/app/预置apk安装失败
[RK3288][Android6.0] 调试笔记 --- 系统识别不同硬件版本方法