mmin18 / Dex65536

Solve the issue with dalvik compiler limitation on 65536 methods (Unable to execute dex: method ID not in [0, 0xffff]: 65536)
MIT License
351 stars 121 forks source link

Build Failed on adding google-play-services-lib #11

Open Navakanth09 opened 9 years ago

Navakanth09 commented 9 years ago

Hi when I am trying to add google-play-services-lib as library to this project it is saying build failed

mmin18 commented 9 years ago

google-play-service-lib is an android lib project, it has its own res which depends on the jar. dex65536 is not capable to handle android lib project, but if you are familiar with the android apk build process, you can manually build to seperate apks. On Sep 23, 2014 5:46 PM, "Navakanth09" notifications@github.com wrote:

Hi when I am trying to add google-play-services-lib as library to this project it is saying build failed

— Reply to this email directly or view it on GitHub https://github.com/mmin18/Dex65536/issues/11.

Navakanth09 commented 9 years ago

Hi, this problem got solved but I got a new problem i.e., I have many libraries and jars in my project and when I run it in ant I am getting the same error again(method Id not in range 65536)

mmin18 commented 9 years ago

can you provide the build output

Navakanth09 notifications@github.com于2014年12月5日星期五写道:

Hi, this problem got solved but I got a new problem i.e., I have my libraries and jars in my project and when I run it in ant I am getting the same error again(method Id not in range 65536)

— Reply to this email directly or view it on GitHub https://github.com/mmin18/Dex65536/issues/11#issuecomment-65780646.

Navakanth09 commented 9 years ago

This is what I am getting this issues is something weird, Firstly when I take 4 classes which has 10k methods in each it runs perfectly but if I make the jar of that classes and include it in my libs folder I am getting this error

-post-compile: [pathtool] include D:/Apps/trunk/facebook-android-sdk-3.0.1/facebook/bin/classes.jar [pathtool] include D:/Apps/trunk/android-crop-master/lib/src/main/bin/classes.jar [pathtool] include D:/Apps/trunk/sharebubbles_menu/bin/classes.jar [pathtool] include D:/Apps/trunk/braintree-1.2.5-project/bin/classes.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/signpost-commonshttp4-1.2.1.1.jar [pathtool] exclude D:/Apps/trunk/braintree-1.2.5-project/libs/braintree-api-1.2.5.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/ormlite-core-4.46.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/gcm.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/signpost-jetty6-1.2.1.1.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/crashlytics.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/signpost-core-1.2.1.1.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/linkedin-j-android.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/twitter4j-core-4.0.2.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/ormlite-android-4.46.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/aws-android-sdk-1.7.1.1.jar [pathtool] exclude D:/Apps/trunk/Giveprivilage/libs/methodpool.jar [pathtool] exclude D:/Apps/trunk/facebook-android-sdk-3.0.1/facebook/libs/android-support-v4.jar [mkdir] Created dir: D:\Apps\trunk\Giveprivilage\bin\libs.apk [dex] input: D:\Apps\trunk\Giveprivilage\libs\signpost-commonshttp4-1.2.1.1.jar [dex] input: D:\Apps\trunk\braintree-1.2.5-project\libs\braintree-api-1.2.5.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\ormlite-core-4.46.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\gcm.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\signpost-jetty6-1.2.1.1.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\crashlytics.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\signpost-core-1.2.1.1.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\linkedin-j-android.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\twitter4j-core-4.0.2.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\ormlite-android-4.46.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\aws-android-sdk-1.7.1.1.jar [dex] input: D:\Apps\trunk\Giveprivilage\libs\methodpool.jar [dex] input: D:\Apps\trunk\facebook-android-sdk-3.0.1\facebook\libs\android-support-v4.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\signpost-commonshttp4-1.2.1.1.jar -> signpost-commonshttp4-1.2.1.1-6bb72c8bca01aa8ceec5136ff429fd83.jar [dex] Pre-Dexing D:\Apps\trunk\braintree-1.2.5-project\libs\braintree-api-1.2.5.jar -> braintree-api-1.2.5-226168eba7b7e4325610b0d336056c0a.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\ormlite-core-4.46.jar -> ormlite-core-4.46-711ca6a1c7d09b49e405daeeecf11b26.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\gcm.jar -> gcm-203cdd7df3987447dbdd7cc0eac728f1.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\signpost-jetty6-1.2.1.1.jar -> signpost-jetty6-1.2.1.1-534c1f62de387ca204e6055b56a10f29.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\crashlytics.jar -> crashlytics-0fac29b3745afab449bf353d743d7656.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\signpost-core-1.2.1.1.jar -> signpost-core-1.2.1.1-dd02a65a60c6e6244e1f85aa1d122895.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\linkedin-j-android.jar -> linkedin-j-android-5dc43014196b78f43f984aa8faca2cf8.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\twitter4j-core-4.0.2.jar -> twitter4j-core-4.0.2-0e87122a42f098ceb18c55743f8b9f3d.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\ormlite-android-4.46.jar -> ormlite-android-4.46-6a638e21b58a43b1ed68096b80acc0a4.jar [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\aws-android-sdk-1.7.1.1.jar -> aws-android-sdk-1.7.1.1-ba24706e951f3859538210f329fd199d.jar [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dx] warning: Ignoring InnerClasses attribute for an anonymous inner class dx that doesn't come with an [dx] associated EnclosingMethod attribute. This class was probably produced by a [dx] compiler that did not target the modern .class file format. The recommended [dx] solution is to recompile the class from source, using an up-to-date compiler [dx] and without specifying any "-target" type options. The consequence of ignoring [dx] this warning is that reflective operations on this class will incorrectly [dx] indicate that it is not an inner class. [dex] Pre-Dexing D:\Apps\trunk\Giveprivilage\libs\methodpool.jar -> methodpool-1b13962e85e24d3d12c67a1e25f4bee3.jar [dex] Pre-Dexing D:\Apps\trunk\facebook-android-sdk-3.0.1\facebook\libs\android-support-v4.jar -> android-support-v4-174165cf82c4cff2444a0185bb0a5153.jar [dex] Converting compiled files and external libraries into D:\Apps\trunk\Giveprivilage\bin\libs.apk\classes.dex... [dx] Merged dex A (4 defs/5.2KiB) with dex B (655 defs/1124.0KiB). Result is 659 defs/1261.0KiB. Took 0.4s [dx] Merged dex A (659 defs/1261.0KiB) with dex B (172 defs/252.1KiB). Result is 831 defs/1749.8KiB. Took 0.2s [dx] Merged dex A (831 defs/1749.8KiB) with dex B (4 defs/17.4KiB). Result is 835 defs/2115.0KiB. Took 0.1s [dx] Result compacted from 2664.5KiB to 1384.7KiB to save 1279.8KiB [dx] Merged dex A (835 defs/2115.0KiB) with dex B (2 defs/3.5KiB). Result is 837 defs/1384.7KiB. Took 0.4s [dx] Merged dex A (837 defs/1384.7KiB) with dex B (167 defs/160.9KiB). Result is 1004 defs/1765.6KiB. Took 0.2s [dx] Merged dex A (1004 defs/1765.6KiB) with dex B (32 defs/37.8KiB). Result is 1036 defs/2122.9KiB. Took 0.1s [dx] Result compacted from 3176.6KiB to 2008.3KiB to save 1168.3KiB [dx] Merged dex A (1036 defs/2122.9KiB) with dex B (461 defs/459.0KiB). Result is 1497 defs/2008.3KiB. Took 0.2s [dx] Merged dex A (1497 defs/2008.3KiB) with dex B (184 defs/315.2KiB). Result is 1681 defs/2710.2KiB. Took 0.1s [dx] Merged dex A (1681 defs/2710.2KiB) with dex B (22 defs/51.9KiB). Result is 1703 defs/3343.0KiB. Took 0.2s [dx] [dx] UNEXPECTED TOP-LEVEL EXCEPTION:

   [dx]     at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:501)
   [dx]     at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:276)
   [dx]     at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:490)
   [dx]     at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167)
   [dx]     at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
   [dx]     at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
   [dx]     at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
   [dx]     at com.android.dx.command.dexer.Main.run(Main.java:230)
   [dx]     at com.android.dx.command.dexer.Main.main(Main.java:199)
   [dx]     at com.android.dx.command.Main.main(Main.java:103)
   [dx] Result compacted from 9642.2KiB to 6791.1KiB to save 2851.1KiB
   [dx] Merged dex A (1703 defs/3343.0KiB) with dex B (4237 defs/4459.4KiB). Result is 5940 defs/6791.1KiB. Took 0.6s

BUILD FAILED D:\Apps\trunk\Giveprivilage\custom_rules.xml:26: null returned: 2

Total time: 1 minute 56 seconds