2011-08-26 9 views
9

Non ho problemi a sviluppare la mia app in eclissi, ma una volta che provo a farlo tramite ant, non viene creata. Ho usato "progetto di aggiornamento android -p". per generare il file build build.xml e proguard.cfg. Ho provato "formica compilazione" e anche bene. L'app include una libreria Android e ha librerie esterne se è importante. Nessuno qui è l'errore che stampa quando provo a fare un "rilascio formica",Android: Problemi nella creazione di apk con 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 

sto praticamente perplesso al momento quindi si spera che qualcuno possa fare una certa luce.

+2

Alcuni contesti su dove ciò accade nel processo di generazione sarebbe utile. In particolare, quali attività ant (eventualmente) vengono eseguite prima dell'errore. Inoltre, hai provato 'ant debug'? – jwriteclub

+0

Il registro di build di ant sarebbe utile. –

+0

Anche quale versione di strumenti Android è installata e alcune informazioni sul tipo e la dimensione del progetto –

risposta

0

Leggere attentamente questa pagina:

http://developer.android.com/tools/projects/projects-cmdline.html

Si può provare una di queste soluzioni:

1) di comando a una linea

android update project -p --subprojects 

2) Aggiornare la build . xml file del progetto principale e del progetto della libreria:

android update lib-project --path myPath/Lib  
android update project --name android_app --path . --library myPath/Lib 

Dopo 1) o 2)

ant clean 
ant release 
1

penso che la mia risposta su this page applica anche su questo errore. Questo accade quando si inizializza una classe anonima nel codice morto.

Una spiegazione del motivo per cui accadrebbe solo in versione e non in debug è che il codice morto viene rimosso quando ottimizzato.

Problemi correlati