首页 > 解决方案 > 如何修复“mmap vdex 的预分配空间不足”。Android P 上的问题

问题描述

在Android P版本上,我们定制的Android系统遇到了一个很奇怪的问题。我们在system/framework下有一个通用的控制APK(这个APK会支持我们系统的UI一致性,所以很多系统应用都会用到),但是在Android P上,偶尔会有各种系统应用出现的概率。

崩溃的问题,经查,是因为在这个apk中没有找到class,但是这个apk中确实存在这个class,并且会打印“ Insufficient pre-allocated space to mmap vdex. ”的日志,所以尝试去删除下这个apk关联的vdex包/data/dalvik-cache/arm64,问题就解决了,但是为什么会出现这个问题呢?以前的安卓版本没有遇到过这样的问题。

应该确定与我们的代码无关,因为这个apk来自Android N

严重日志:为 mmap vdex 预分配的空间不足。

com.journeyui.commonui 包中没有要更新的资源引用

拒绝对先前失败的类 java.lang.Class 重新初始化:java.lang.NoClassDefFoundError:解析失败:Ljourneyuix/slice/SliceProvider;

原因:java.lang.ClassNotFoundException:在路径上找不到类“journeyuix.slice.SliceProvider”:DexPathList [[zip 文件“/system/framework/CommonUILibrary.apk”,zip 文件“/system/framework/org. Apache.http.legacy.boot.jar", zip 文件 "/system/priv-app/Settings/Settings.apk"], nativeLibraryDirectories=[/system/priv-app/Settings/lib/arm64, /system/priv- App/Settings/Settings.apk!/lib/arm64-v8a, /system/lib64, /system/framework/CommonUILibrary.apk!/lib/arm64-v8a, /system/lib64]]

应用程序因找不到类型而崩溃。我希望应用程序不会崩溃。

标签: c#androidmmap

解决方案


推荐阅读