Reputation: 91
I have no problems building my app in eclipse but once I try to do it via ant, it does not build. I've used "android update project -p ." to generate the build build.xml and proguard.cfg file. I tried "ant compile" and it builds fine as well. The app includes a android library and has external libs if it matters. Anyone here's the error that prints out when I try to do a "ant release",
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.ExceptionWithContext
at com.android.dx.util.ExceptionWithContext.withContext(ExceptionWithContext.java:46)
at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:340)
at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:131)
at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:85)
at com.android.dx.command.dexer.Main.processClass(Main.java:369)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:346)
at com.android.dx.command.dexer.Main.access$400(Main.java:59)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:294)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:134)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
at com.android.dx.command.dexer.Main.processOne(Main.java:313)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:233)
at com.android.dx.command.dexer.Main.run(Main.java:185)
at com.android.dx.command.dexer.Main.main(Main.java:166)
at com.android.dx.command.Main.main(Main.java:90)
Caused by: java.lang.NullPointerException
at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:84)
at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:243)
... 23 more
I'm pretty much perplexed at the moment so hopefully someone can shed some light.
Upvotes: 9
Views: 911
Reputation: 2194
I think my answer on this page also applies on this error. This happens when you initialize an anonymous class in dead code.
An explanation why it would only happen in release and not in debug is that the dead code is removed when optimized.
Upvotes: 1
Reputation: 13548
Read carefully this page:
http://developer.android.com/tools/projects/projects-cmdline.html
You can try one of these solution:
1) One-line command
android update project -p --subprojects
2) Update the build.xml file of both the main project and the library project:
android update lib-project --path myPath/Lib
android update project --name android_app --path . --library myPath/Lib
After 1) or 2)
ant clean
ant release
Upvotes: 0