【问题标题】:multiDex error on android studio 1.0android studio 1.0 上的 multiDex 错误
【发布时间】:2015-03-07 14:40:13
【问题描述】:

我是 android 和 java 的新手。我想将我现有的项目从 eclipse 移动到 android studio,在我管理一些依赖项后,我在下面得到了这个错误。

 Error:Execution failed for task ':mainActivity:dexDebug'.

com.android.ide.common.internal.LoggedErrorException:无法运行命令: /Users/nuttapol/android_sdk/build-tools/21.1.2/dx --dex --no-optimize --multi-dex --main-dex-list /Users/nuttapol/Documents/MyApp/New_App/MyApp_android/mainActivity /build/intermediates/multi-dex/debug/maindexlist.txt --output /Users/nuttapol/Documents/MyApp/New_App/MyApp_android/mainActivity/build/intermediates/dex/debug --input-list=/Users/nuttapol/ Documents/MyApp/New_App/MyApp_android/mainActivity/build/intermediates/tmp/dex/debug/inputList.txt 错误代码: 3 输出: objc[9912]:类 JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home 中实现/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。 意外的顶级错误: java.lang.OutOfMemoryError:Java 堆空间 在 java.util.zip.InflaterInputStream.(InflaterInputStream.java:88) 在 java.util.zip.ZipFile$ZipFileInflaterInputStream.(ZipFile.java:394) 在 java.util.zip.ZipFile.getInputStream(ZipFile.java:375) 在 com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:269) 在 com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 在 com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 在 com.android.dx.command.dexer.Main.processOne(Main.java:632) 在 com.android.dx.command.dexer.Main.processAllFiles(Main.java:505) 在 com.android.dx.command.dexer.Main.runMultiDex(Main.java:334) 在 com.android.dx.command.dexer.Main.run(Main.java:244) 在 com.android.dx.command.dexer.Main.main(Main.java:215) 在 com.android.dx.command.Main.main(Main.java:106)

我该如何解决这个错误?

【问题讨论】:

  • 我认为您的项目正在获得两个 JavaLaunchHelper 类引用。

标签: java android android-studio


【解决方案1】:

我遇到了同样的答案,通过以下操作解决了这个问题。

1.确保你的Build.Gradle文件已经生成成功

2.清理项目,然后重启Android studio

但如果错误仍然存​​在,那么漫长但 100% 确认的工作解决方案是:

  1. 制作具有相同命名空间等的项目,并将所有文件复制到java,xmls,string.xml等位置。

【讨论】:

  • 在我发这篇文章之前我已经这样做了,但它不起作用。 :(
  • 您是否尝试制作新项目并将所有编码文本复制到其中?
  • 当您制作全新的项目并按原样运行时它会说什么?
  • 我遇到了同样的错误。但是我现在可以在更新我的 jdk 后构建它。
  • Oked 首先 1. 升级你的 sdk 专门使用最新的构建工具我有同样的错误,我删除不安装最新的构建工具版本,如 21.00 但我也安装了 20、19、18, 17 到 16 所以我也建议你这样做 2.在 sdk 中检查你的 sdk 中安装了哪个 Build 工具版本,然后转到 build.gradle 文件并在 build.gradle 文件中进行以下更改 //////// gradle file defaultConfig { applicationId "your application package name" minSdkVersion 8 // 在此处更改您的构建版本 targetSdkVersion 20 versionCode 1 versionName "1.0" }
【解决方案2】:

检查此答案后:

Android Studio: Gradle - build fails -- Execution failed for task ':dexDebug'

一些库或外部依赖,在单个 jar 文件中,我开始将它们作为模块再次导入,在某些情况下创建一个新模块并导入 jar 文件就足够了,在其他情况下,只是有必要以不同的方式包含依赖关系。

我希望这会有所帮助。

【讨论】:

    【解决方案3】:
    UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: Java heap space at     java.util.zip.InflaterInputStream.(InflaterInputStream.java:88) at     java.util.zip.ZipFile$ZipFileInflaterInputStream.(ZipFile.java:394) at java.util.zip.ZipFile.getInputStream(ZipFile.java:375) 
    

    这似乎是真正的罪犯。在您的 build.gradle 添加并调整以下配置:

    android{
        dexOpts{
                javaMaxHeapSize "2g"
        }
    }
    

    上面的例子是将最大限制设置为 2GB。您可能应该逐步增加此值,并找出最适合您的位置并在那里进行调整。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 2014-12-25
      • 2015-03-24
      相关资源
      最近更新 更多