我是靠谱客的博主 聪明墨镜,最近开发中收集的这篇文章主要介绍[RK3288][Android6.0] 调试笔记 --- /data/app/预置apk安装失败,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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安装失败所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部