2014-07-02 2 views
1

Недавно я добавил ниже упомянутую папку Jackson jar в папку libs в моем проекте.Android Dex - ошибки после добавления библиотек Jackson

1.jackson-annotations-2.2.3.jar 
2.jackson-core-2.2.3.jar 
3.jackson-databind-2.2.3.jar 

Внезапно становится ниже ошибок при запуске моего проекта.

Error:Android Dex: [MyProjectName] Unable to execute DX 
Error:Android Dex: [MyProjectName] java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 
Error:Android Dex: [MyProjectName] at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:501) 
Error:Android Dex: [MyProjectName] at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:276) 
Error:Android Dex: [MyProjectName] at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:490) 
Error:Android Dex: [MyProjectName] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167) 
Error:Android Dex: [MyProjectName] at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 
Error:Android Dex: [MyProjectName] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) 
Error:Android Dex: [MyProjectName] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) 
Error:Android Dex: [MyProjectName] at com.android.dx.command.dexer.Main.run(Main.java:230) 
Error:Android Dex: [MyProjectName] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
Error:Android Dex: [MyProjectName] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
Error:Android Dex: [MyProjectName] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
Error:Android Dex: [MyProjectName] at java.lang.reflect.Method.invoke(Method.java:483) 
Error:Android Dex: [MyProjectName] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:161) 
Error:Android Dex: [MyProjectName] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:294) 
Error:Android Dex: [MyProjectName] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121) 

ответ

1

Он похож на этот: link.

Причина заключается в том, что максимальные методы в файле Декс 65536.

[Редактировать]

Я не уверен, если это хорошая идея. Я просто прочитал статью о динамически загружаемом файле jar во время выполнения. Таким образом, сначала необходимо удалить, возможно, одну или две банки, и убедитесь, что ваше приложение может работать. Затем загрузите еще одну банку во время выполнения.

Вот учебник: blog.csdn.net/bboyfeiyu/article/details/11710497

+0

Да, вы правильно, но можете ли вы объяснить мне, что я должен сделать для этой ошибки? ион? –

+0

Итак, что вы думаете, это правильный способ решить эту проблему? –

+0

Я думаю, что правильный путь - удалить ненужные зависимости :) Но если я ничего не смогу удалить, я попытаюсь загрузить эти файлы jar динамически (потому что эти файлы jar действительно важны, не так ли?) – ohyes

Смежные вопросы