[英]Cannot run project in Android Studio
When I was trying to run my project in Android Studio, I got the following error message 当我试图在Android Studio中运行我的项目时,我收到以下错误消息
Execution failed for task ':CricHQ:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/Applications/Android Studio.app/sdk/build-tools/19.0.1/dx -JXmx4g --dex --output
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Cannot merge new index 66514 into a non-jumbo instruction!
at com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:108)
at com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:25)
at com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:71)
at com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)
at com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)
at com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:48)
at com.android.dx.merge.DexMerger.transformCode(DexMerger.java:840)
at com.android.dx.merge.DexMerger.transformMethods(DexMerger.java:811)
at com.android.dx.merge.DexMerger.transformClassData(DexMerger.java:783)
at com.android.dx.merge.DexMerger.transformClassDef(DexMerger.java:680)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:540)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
Anyone can help me with this problem? 任何人都可以帮我解决这个问题? Thanks a lot.
非常感谢。
If you're using Android Studio without gradle then Preferences->Compiler->Android Compilers->Force Jumbo Mode 如果您使用的是没有gradle的Android Studio,则使用Preferences-> Compiler-> Android Compilers-> Force Jumbo Mode
If your using gradle then add to build.gradle 如果您使用gradle,则添加到build.gradle
android {
dexOptions {
jumboMode true
}
There's a limitation in Android on the number of Java methods you can have in a single dex file, and you're hitting that limit. Android中有一个限制,你可以在单个dex文件中拥有Java方法的数量,并且你达到了这个限制。 Unfortunately, there's no easy solution to it.
不幸的是,没有简单的解决方案。 Your choices are:
你的选择是:
If those approaches don't work, it's possible to split your application into multiple dex files and use classloader tricks to make it work at runtime, but that's more complicated. 如果这些方法不起作用,可以将应用程序拆分为多个dex文件,并使用类加载器技巧使其在运行时工作,但这更复杂。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.