krisc / events

EventsListing Android app written in Clojure
Other
143 stars 16 forks source link

Getting Exception during DEX compilation #3

Closed ryanmmmmm closed 10 years ago

ryanmmmmm commented 10 years ago

Using:

adt-bundle-mac-x86_64-20130219

and preview4 for neko and lein-droid..

Any ideas?

Thanks!!

Compiling neko.ui Compiling clojure.repl Compiling clojure.tools.nrepl.middleware.pr-values Compiling clojure.uuid Compilation succeeded. Creating DEX....

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Lslam/hound__init; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) at com.android.dx.dex.file.DexFile.add(DexFile.java:163) at com.android.dx.command.dexer.Main.processClass(Main.java:490) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459) at com.android.dx.command.dexer.Main.access$400(Main.java:67) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109) at com.android.dx.command.dexer.Main.processOne(Main.java:422) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333) at com.android.dx.command.dexer.Main.run(Main.java:209) at com.android.dx.command.dexer.Main.main(Main.java:174) at com.android.dx.command.Main.main(Main.java:91) 1 error; aborting Abort execution.

krisc commented 10 years ago

What versions of lein and Android Build Tools are you using? Let's make sure you are using a lein version >= 2.3 and Build Tools >= 17.0.0

ryanmmmmm commented 10 years ago

➜ ~ lein -version Leiningen 2.3.4 on Java 1.7.0_09 Java HotSpot(TM) 64-Bit Server VM ➜ ~

adt-bundle-mac-x86_64-20130219 is Android SDK Tools 22.3 which has build tools 17..

ryanmmmmm commented 10 years ago

i think my android install is borked... let me get that squared away and ill let you know once i feel its working properly outside of clojure entirely..

ryanmmmmm commented 10 years ago

ok i just wiped out and installed android adt again and am using the build tools v19.

I have verified this is working by creating and running a few example apps via the normal methods:

ant debug adb install using an emulator and device as well..

still getting the same error. This exception is very vague. I'll see if i can dig in deeper next to see if i can learn anything along the way. Nothing looks odd in my pom or dependencies right now.

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Lslam/hound__init; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) at com.android.dx.dex.file.DexFile.add(DexFile.java:163) at com.android.dx.command.dexer.Main.processClass(Main.java:490) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459) at com.android.dx.command.dexer.Main.access$400(Main.java:67) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109) at com.android.dx.command.dexer.Main.processOne(Main.java:422) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333) at com.android.dx.command.dexer.Main.run(Main.java:209) at com.android.dx.command.dexer.Main.main(Main.java:174) at com.android.dx.command.Main.main(Main.java:91)

ryanmmmmm commented 10 years ago

i removed the slamhound dependency in my profiles.clj and i am able to build now..good to know i guess..closing ticket..

krisc commented 10 years ago

Well... alright! Not sure how many other people are doing Android development with slamhound, but you might want to bring this up to technomancy in case someone else runs into this problem.

ckoparkar commented 10 years ago

I'm still getting this error. os: arch 64bit Android SDK Tools 22.6.3 Platform Tools 19.0.2 java version "1.7.0_51" leiningen 2.3.4

Stacktrace:

UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: GC overhead limit exceeded at com.android.dx.cf.code.ConcreteMethod.makeSourcePosistion(ConcreteMethod.java:254) at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:293) at com.android.dx.cf.code.Simulator$SimVisitor.visitLocal(Simulator.java:612) at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:482) at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94) at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:698) at com.android.dx.cf.code.Ropper.doit(Ropper.java:653) at com.android.dx.cf.code.Ropper.convert(Ropper.java:266) at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282) at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139) at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94) at com.android.dx.command.dexer.Main.processClass(Main.java:682) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) at com.android.dx.command.dexer.Main.access$600(Main.java:78) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:596) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) Abort execution.

Any help ??

krisc commented 10 years ago

in the project.clj file, look for this commented line and uncomment it:

:dex-opts ["-JXmx4096M"]
ckoparkar commented 10 years ago

It worked !! Thanks again for this great tutorial.