我所遇到的No original dex files found for dex,其实是共享uid,32bit和64bit apk共存问题

本人安卓系统开发,安装客户app后,出现系统设置、资源管理器等系统应用闪退的问题,同时报No original dex files found for dex 错误:

03-20 00:32:34.577   361   405 E AudioFlinger: no wake lock to update, but system ready!
03-20 00:32:34.597   597   702 I ActivityManager: Start proc 2848:com.android.rk/1000 for activity com.android.rk/.RockExplorer
03-20 00:32:34.598  2848  2848 E art     : setrlimit(RLIMIT_CORE) failed for pid 2848: Operation not permitted
03-20 00:32:34.673  2848  2848 W System  : ClassLoader referenced unknown path: /system/app/RkExplorer/lib/arm64
03-20 00:32:34.697  2848  2848 D AndroidRuntime: Shutting down VM
03-20 00:32:34.699  2848  2848 E AndroidRuntime: FATAL EXCEPTION: main
03-20 00:32:34.699  2848  2848 E AndroidRuntime: Process: com.android.rk, PID: 2848
03-20 00:32:34.699  2848  2848 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.android.rk/com.android.rk.RockExplorer}: java.lang.ClassNotFoundException: Didn't find class "com.android.rk.RockExplorer" on path: DexPathList[[zip file "/system/app/RkExplorer/RkExplorer.apk"],nativeLibraryDirectories=[/system/app/RkExplorer/lib/arm64, /system/fake-libs, /system/app/RkExplorer/RkExplorer.apk!/lib/armeabi, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2573)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2732)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.app.ActivityThread.-wrap12(ActivityThread.java)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1483)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:102)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:154)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6141)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.rk.RockExplorer" on path: DexPathList[[zip file "/system/app/RkExplorer/RkExplorer.apk"],nativeLibraryDirectories=[/system/app/RkExplorer/lib/arm64, /system/fake-libs, /system/app/RkExplorer/RkExplorer.apk!/lib/armeabi, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2563)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	... 9 more
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 	Suppressed: java.io.IOException: No original dex files found for dex location /system/app/RkExplorer/RkExplorer.apk
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.DexFile.openDexFileNative(Native Method)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.DexFile.openDexFile(DexFile.java:367)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.DexFile.(DexFile.java:112)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.DexFile.(DexFile.java:77)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.DexPathList.loadDexFile(DexPathList.java:359)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.DexPathList.makeElements(DexPathList.java:323)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.DexPathList.makeDexElements(DexPathList.java:263)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.DexPathList.(DexPathList.java:126)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:48)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at dalvik.system.PathClassLoader.(PathClassLoader.java:64)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:520)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.LoadedApk.getClassLoader(LoadedApk.java:553)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:1872)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.LoadedApk.getResources(LoadedApk.java:766)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.ContextImpl.(ContextImpl.java:2038)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.ContextImpl.createAppContext(ContextImpl.java:1983)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5316)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.ActivityThread.-wrap2(ActivityThread.java)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1551)
03-20 00:32:34.699  2848  2848 E AndroidRuntime: 		... 6 more
03-20 00:32:34.701   597   937 W ActivityManager:   Force finishing activity com.android.rk/.RockExplorer
03-20 00:32:34.706  2848  2848 I Process : Sending signal. PID: 2848 SIG: 9
03-20 00:32:34.724   257   257 E lowmemorykiller: Error writing /proc/2848/oom_score_adj; errno=22

 

问题猜测:是系统关于flash这块的稳定性差导致的。但是由于对这块不甚了解,便从日志中的No original dex files found for dex 这句分析,既然系统去检查资源管理的dex文件,那么便将整个系统对于dex的优化去掉,实验一番。

WITH_DEXPREOPT的宏定义,预设为false。开始漫长的编译过程...

 

在大神指点下,看到这篇文章,才明白问题关键,并不在这里,报错缺少的文件我们通过adb是有看到的

W PackageManager: Instruction set mismatch, PackageSetting{234cf3a com.android.xdsclient/1000} requires arm whereas PackageSetting{38ca960 android/1000}

,非常感谢

https://blog.csdn.net/qq_37610155/article/details/78607276

 

解决方法:

 

1..在apk对应的android.mk中

LOCAL_DEX_PREOPT := nostripping

 

2.  /device/qcom/msmxxxx/BoardConfig.mk,
DEX_PREOPT_DEFAULT := nostripping 

 

 

 

 

你可能感兴趣的:(我所遇到的No original dex files found for dex,其实是共享uid,32bit和64bit apk共存问题)