@asdf999
Android Programmer

Как разобраться с проблемой Unable to execute DX?

Пытаюсь скомпилировать cocos2d-x проект под андроид и выскакивает такая ошибка:

Android Dex: [proj.android] Unable to execute DX
Android Dex: [proj.android] java.nio.BufferOverflowException
Android Dex: [proj.android] at java.nio.HeapByteBuffer.putShort(HeapByteBuffer.java:296)
Android Dex: [proj.android] at com.android.dex.Dex$Section.writeShort(Dex.java:818)
Android Dex: [proj.android] at com.android.dex.Dex$Section.writeTypeList(Dex.java:870)
Android Dex: [proj.android] at com.android.dx.merge.DexMerger$3.write(DexMerger.java:437)
Android Dex: [proj.android] at com.android.dx.merge.DexMerger$3.write(DexMerger.java:423)
Android Dex: [proj.android] at com.android.dx.merge.DexMerger$IdMerger.mergeUnsorted(DexMerger.java:317)
Android Dex: [proj.android] at com.android.dx.merge.DexMerger.mergeTypeLists(DexMerger.java:423)
Android Dex: [proj.android] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:163)
Android Dex: [proj.android] at com.android.dx.merge.DexMerger.merge(DexMerger.java:187)
Android Dex: [proj.android] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
Android Dex: [proj.android] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
Android Dex: [proj.android] at com.android.dx.command.dexer.Main.run(Main.java:230)
Android Dex: [proj.android] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Android Dex: [proj.android] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
Android Dex: [proj.android] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Android Dex: [proj.android] at java.lang.reflect.Method.invoke(Method.java:597)
Android Dex: [proj.android] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:161)
Android Dex: [proj.android] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:294)
Android Dex: [proj.android] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)


Имею опыт разработки обычных приложений под Андроид, там такая проблема разрешалась поиском подключенных jar файлов с одинаковыми именами например support-v4.
Есть какой-то универсальный алгоритм определения "места" ошибки? Как узнать какие файлы конфликтуют?
  • Вопрос задан
  • 3991 просмотр
Решения вопроса 1
@asdf999 Автор вопроса
Android Programmer
Разобрался, если поставить версию в свойствах проекта 4.4, то конфликта annotations.jar нет и всё компилится.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы