簡體   English   中英

Android:使用Ant Release構建apk的問題

[英]Android: Problems building apk with Ant Release

我在eclipse中構建我的應用程序沒有問題,但是一旦我嘗試通過ant進行,它就不會構建。 我用過“android update project -p”。 生成build build.xml和proguard.cfg文件。 我試過“ant compile”,它也很好。 該應用程序包括一個Android庫,如果重要的話有外部庫。 這里的任何人都是在我嘗試進行“螞蟻釋放”時打印出來的錯誤,

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

我此刻非常困惑所以希望有人可以解釋一下。

我想我在這個頁面上的答案也適用於這個錯誤。 在死代碼中初始化匿名類時會發生這種情況。

解釋為什么它只會在發布而不是在調試中發生的原因是在優化時刪除了死代碼。

仔細閱讀此頁面:

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

您可以嘗試以下解決方案之一:

1)單行命令

android update project -p --subprojects

2)更新主項目和庫項目的build.xml文件:

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

1)或2)之后

ant clean
ant release

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM