1

Recently i have added below mentioned jackson jar to libs folder in my project.

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

Suddenly getting below errors when i run my project.

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)
Haresh Chhelana
  • 24,720
  • 5
  • 57
  • 67

2 Answers2

1

It looks similar to this one: link.

The reason is that the maximum methods in a dex file is 65536.

[Edit]

I'm not sure if this is a good idea. I just read an article about dynamically load jar file on runtime. In this way, you have to remove maybe one or two jar first and make sure your application can run. Then, load another jar on runtime.

Here's tutorial: blog.csdn.net/bboyfeiyu/article/details/11710497

Community
  • 1
  • 1
ohyes
  • 3,210
  • 3
  • 20
  • 24
  • Yes you right but can you please explain me what i have to do for this error solution ? – Haresh Chhelana Jul 02 '14 at 09:07
  • I think the right way is to remove unnecessary dependencies :) But if there's nothing I can remove, I'll try to load those jar files dynamically (because those jar files are really important, isn't it?) – ohyes Jul 02 '14 at 09:44
  • 1
    Try using proguard. It should strip out any unused methods and bring your overall method count down. – JesusFreke Jul 02 '14 at 20:36
0

Now days android developer site provide guideline to resolve this problem :

https://developer.android.com/tools/building/multidex.html

Updated :

http://android-developers.blogspot.co.at/2014/12/google-play-services-and-dex-method.html

Haresh Chhelana
  • 24,720
  • 5
  • 57
  • 67