DX не работает с RoboGuice - PullRequest
       44

DX не работает с RoboGuice

1 голос
/ 28 февраля 2012

Я пытаюсь упаковать приложение для Android, которое использует RoboGuice. Файлы .class компилируются нормально, но при сборке пакета Android dx завершается с ошибкой с сообщением «Нет расширенного кода операции».

Бег dx --dex --debug --verbose target/android-classes производит:

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).

В Googling вокруг, я нашел этот предыдущий вопрос о переполнении стека , который, казалось, был ошибкой конфигурации, но я не думаю, что это проблема, с которой я сталкиваюсь ... help!

Ответы [ 2 ]

0 голосов
/ 05 апреля 2012

Вы можете переписать код DX, чтобы он поддерживал расширенный код операции. Я надеюсь, что мой ответ может помочь вам.

0 голосов
/ 29 февраля 2012

Оказывается, что эта проблема связана с пределом метода Dalvik hard 64k ;Я отправил новый отчет об ошибке , в котором просил команду Android исправить плохой диагностический вывод.

...