java.io.IOException:找不到dex位置的原始dex文件

alv*_*ion 20 android android-ndk

我正在尝试使用自2015年以来尚未更新的项目文件中的最新SDK构建Android应用程序.通过一些工作,我已经设法让它构建和安装,但是当我启动时,我得到一个错误,我找不到太多信息:"java.io.IOException:找不到dex位置的原始dex文件".

这是错误的全文:

03-19 23:32:37.418 10121 10121 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.xxx.xxx/com.xxx.xxx.LaunchActivity}: java.lang.ClassNotFoundException: Didn't find class "com.xxx.xxx.LaunchActivity" on path: DexPathList[[zip file "/data/app/com.xxx.xxx-1/base.apk"],nativeLibraryDirectories=[/data/app/com.xxx.xxx-1/lib/arm, /system/fake-libs, /data/app/com.xxx.xxx-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2604)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2788)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.app.ActivityThread.-wrap12(ActivityThread.java)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1503)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:102)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:154)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6209)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
03-19 23:32:37.418 10121 10121 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.xxx.xxx.LaunchActivity" on path: DexPathList[[zip file "/data/app/com.xxx.xxx-1/base.apk"],nativeLibraryDirectories=[/data/app/com.xxx.xxx-1/lib/arm, /system/fake-libs, /data/app/com.xxx.xxx-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.app.Instrumentation.newActivity(Instrumentation.java:1094)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2594)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    ... 9 more
03-19 23:32:37.418 10121 10121 E AndroidRuntime:    Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.xxx.xxx-1/base.apk
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.DexFile.openDexFileNative(Native Method)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.DexFile.openDexFile(DexFile.java:373)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.DexFile.<init>(DexFile.java:113)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.DexFile.<init>(DexFile.java:78)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:359)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.DexPathList.makeElements(DexPathList.java:323)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:263)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.DexPathList.<init>(DexPathList.java:126)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:525)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.LoadedApk.getClassLoader(LoadedApk.java:558)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:1902)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.LoadedApk.getResources(LoadedApk.java:774)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.ContextImpl.<init>(ContextImpl.java:2083)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.ContextImpl.createAppContext(ContextImpl.java:2028)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5383)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.ActivityThread.-wrap2(ActivityThread.java)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1571)
03-19 23:32:37.418 10121 10121 E AndroidRuntime:        ... 6 more
Run Code Online (Sandbox Code Playgroud)

这是相关的dex输出:

-dex:
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/bin/classes
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/google/play_apk_expansion/downloader_library/bin/classes.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/google/play_licensing/library/bin/classes.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/crittercism_v1_3_0.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/jackson-mapper-asl-1.8.4.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/google/play_apk_expansion/downloader_library/libs/android-support-v4.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/dropbox-android-sdk-1.5.4.jar
      [dex] input: /Users/alvion/Library/Android/sdk/tools/support/annotations.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/ouya-sdk.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/guava-r09.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/in-app-purchasing-1.0.3.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/jackson-core-asl-1.8.4.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/json_simple-1.1.jar
      [dex] input: /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/commons-lang-2.6.jar
      [dex] Pre-Dexing /Users/alvion/df/xxx/xxx/Code/Host-Ant/google/play_apk_expansion/downloader_library/bin/classes.jar -> classes-81c328b1bd235b3a63ab7b7dc3612832.jar
      [dex] Using Pre-Dexed classes-8402751112432f9e98dc60e91b59aa39.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/google/play_licensing/library/bin/classes.jar
      [dex] Using Pre-Dexed crittercism_v1_3_0-3d69c6e931684bd63dfe2e833d0aebe6.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/crittercism_v1_3_0.jar
      [dex] Using Pre-Dexed jackson-mapper-asl-1.8.4-ffc362a66f3bc5bb8073e3401c4d7c7b.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/jackson-mapper-asl-1.8.4.jar
      [dex] Using Pre-Dexed android-support-v4-39781f5ab2494414fb73e335497fb91d.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/google/play_apk_expansion/downloader_library/libs/android-support-v4.jar
      [dex] Using Pre-Dexed dropbox-android-sdk-1.5.4-e975c3510f4992bd1ed860294caaaec6.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/dropbox-android-sdk-1.5.4.jar
      [dex] Using Pre-Dexed annotations-812d332b38fbdb408dd663820ddaf9f6.jar <- /Users/alvion/Library/Android/sdk/tools/support/annotations.jar
      [dex] Using Pre-Dexed ouya-sdk-7728ab2d7956de1baa1d2087c8b3543b.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/ouya-sdk.jar
      [dex] Using Pre-Dexed guava-r09-e1a6934eeb9a0381c562ff20974676c2.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/guava-r09.jar
      [dex] Using Pre-Dexed in-app-purchasing-1.0.3-fa4d8ee5ba37ef3c2e63307e237f5958.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/in-app-purchasing-1.0.3.jar
      [dex] Using Pre-Dexed jackson-core-asl-1.8.4-d94d4ec863304731c24c400b1f59e0be.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/jackson-core-asl-1.8.4.jar
      [dex] Using Pre-Dexed json_simple-1.1-162e5f2c569f2c90fd6fa9067260bced.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/json_simple-1.1.jar
      [dex] Using Pre-Dexed commons-lang-2.6-73a87249d3e4206fda186982d953eb0b.jar <- /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/libs/commons-lang-2.6.jar
      [dex] Found modified input file
      [dex] Converting compiled files and external libraries into /Users/alvion/df/xxx/xxx/Code/Host-Ant/Game/bin/classes.dex...
       [dx] Merged dex #1 (87 defs/139.5KiB)
       [dx] Merged dex #2 (371 defs/436.8KiB)
       [dx] Merged dex #3 (2 defs/1.1KiB)
       [dx] Merged dex #4 (50 defs/90.6KiB)
       [dx] Merged dex #5 (25 defs/35.5KiB)
       [dx] Merged dex #6 (133 defs/331.3KiB)
       [dx] Merged dex #7 (69 defs/199.7KiB)
       [dx] Merged dex #8 (73 defs/84.7KiB)
       [dx] Merged dex #9 (883 defs/1023.2KiB)
       [dx] Merged dex #10 (85 defs/58.1KiB)
       [dx] Merged dex #11 (129 defs/232.0KiB)
       [dx] Merged dex #12 (432 defs/535.7KiB)
       [dx] Merged dex #13 (12 defs/21.8KiB)
       [dx] Merged dex #14 (204 defs/181.7KiB)
       [dx] Result is 2555 defs/4209.8KiB. Took 0.6s
Run Code Online (Sandbox Code Playgroud)

有关该应用的一些细节:

  • 这是一场比赛,而且非常棒.用于apk的2.5演出,以及大量的c ++代码,尽管Java代码非常少.
  • 当尝试通过"adb install"进行安装时,它会在以下行中给出随机错误,但每次都有不同的文件名.我认为这与apk的非常大小有关,但我不确定,我不确定它是否与当前问题有关.

Failed to install drm_free/Xxx-debug.apk: Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed reading assets/some/random/asset.bin in android.util.jar.StrictJarFile@710a502: META-INF/MANIFEST.MF has invalid digest for assets/some/random/asset.bin in assets/some/random/asset.bin]

我能找到的唯一相关问题就是这个问题,但它似乎没有关系,因为这个应用程序中实际的Java代码非常少,所以达到dex方法限制是没有意义的.这里提供的解决方案非常重要,因为我需要在构建过程中设置的multiDexEnabled属性似乎只在gradle构建文件中公开,我没有,因为这是一个遗留项目.

hof*_*ofs 10

我有一个类似的问题,解决方法:去build.gradle(Module: app)中debug块和禁用minifyEnabled:

debug {
            minifyEnabled false

        }
Run Code Online (Sandbox Code Playgroud)

  • 已经将此设置为FALSE,它不起作用。 (3认同)
  • minifyEnabled 将对代码进行优化和混淆。您不应该将其设置为 false。 (2认同)

Ana*_*sad 10

在我的情况下,设置>构建,执行,部署>即时运行

取消选中“在部署时启用即时运行以热插拔代码/资源更改”

工作正常。


Man*_*nju 1

安装我的 apk 后我也遇到了同样的问题。从 android.mk 禁用 PREOPT 并构建应用程序后,它开始工作。

请参阅以下链接以供参考 https://groups.google.com/forum/#!topic/android-building/NWpPusXEfN0