Android dx与RoboGuice一起失败

Android dx与RoboGuice一起失败,android,dependency-injection,roboguice,dx,Android,Dependency Injection,Roboguice,Dx,我正在尝试打包一个使用RoboGuice的Android应用程序。class文件可以很好地编译,但是在构建Android包时,dx失败,并显示一条“无扩展操作码”消息 运行dx--dex--debug--verbose target/android类生成: trouble writing output: com.android.dx.util.DexException: No expanded opcode for 6c80c7f5 Key.java:371@0003: invoke-virtu

我正在尝试打包一个使用RoboGuice的Android应用程序。class文件可以很好地编译,但是在构建Android包时,dx失败,并显示一条“无扩展操作码”消息

运行
dx--dex--debug--verbose target/android类
生成:

trouble writing output:
com.android.dx.util.DexException: No expanded opcode for 6c80c7f5 Key.java:371@0003: invoke-virtual v0:[Lcom/google/inject/Key$NullAnnotationStrategy;, com.google.inject.Key$NullAnnotationStrategy[].clone:()Ljava/lang/Object;
at com.android.dx.dex.code.OutputFinisher.findExpandedOpcodeForInsn(OutputFinisher.java:526)
at com.android.dx.dex.code.OutputFinisher.calculateReservedCount(OutputFinisher.java:467)
at com.android.dx.dex.code.OutputFinisher.reserveRegisters(OutputFinisher.java:403)
at com.android.dx.dex.code.OutputFinisher.finishProcessingAndGetList(OutputFinisher.java:359)
at com.android.dx.dex.code.DalvCode.finishProcessingIfNecessary(DalvCode.java:108)
at com.android.dx.dex.code.DalvCode.getInsns(DalvCode.java:185)
at com.android.dx.dex.file.CodeItem.place0(CodeItem.java:223)
at com.android.dx.dex.file.OffsettedItem.place(OffsettedItem.java:242)
at com.android.dx.dex.file.MixedItemSection.placeItems(MixedItemSection.java:312)
at com.android.dx.dex.file.DexFile.toDex0(DexFile.java:543)
at com.android.dx.dex.file.DexFile.toDex(DexFile.java:216)
at com.android.dx.command.dexer.Main.writeDex(Main.java:574)
at com.android.dx.command.dexer.Main.run(Main.java:218)
at com.android.dx.command.dexer.Main.main(Main.java:174)
at com.android.dx.command.Main.main(Main.java:95)
...while placing CodeItem{com.google.inject.Key$NullAnnotationStrategy.values:()[Lcom/google/inject/Key$NullAnnotationStrategy;}
...while writing section 7
这发生在RoboGuice 1.1.2(Guice 2)和RoboGuice 2.0b3(Guice 3)中


在谷歌搜索中,我发现这似乎是一个配置错误,但我不认为这是我遇到的问题。。。救命啊

原来这个问题与Dalvik有关;我已经提交了一份申请,要求Android团队修复糟糕的诊断输出。

您可以重写dx代码,让它支持扩展操作码。我希望我的回答能帮助你