2011-08-26 41 views
9

Tôi không gặp vấn đề gì khi xây dựng ứng dụng của mình trong nhật thực nhưng một khi tôi cố gắng thực hiện nó thông qua kiến, nó không xây dựng. Tôi đã sử dụng "android update project -p." để tạo tệp build.xml và proguard.cfg. Tôi đã thử "biên dịch kiến" và nó cũng được xây dựng tốt. Các ứng dụng bao gồm một thư viện Android và có libs bên ngoài nếu nó quan trọng. Bất kỳ ai ở đây đều là lỗi in ra khi tôi cố gắng thực hiện "bản phát hành kiến",Android: Sự cố khi xây dựng apk với 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 

Tôi khá bối rối vào lúc này để hy vọng ai đó có thể làm sáng tỏ.

+2

Một số ngữ cảnh về nơi điều này xảy ra trong quá trình xây dựng sẽ hữu ích. Cụ thể, nhiệm vụ kiến ​​(nếu có) chạy trước lỗi. Ngoài ra, bạn đã thử 'ant debug' chưa? – jwriteclub

+0

nhật ký xây dựng kiến ​​sẽ hữu ích. –

+0

Ngoài ra phiên bản công cụ Android nào được cài đặt và một số thông tin về loại và kích thước của dự án –

Trả lời

0

Đọc kỹ trang này:

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

Bạn có thể thử một trong những giải pháp:

1) Một dòng lệnh

android update project -p --subprojects 

2) Cập nhật xây dựng. xml tệp của cả dự án chính và dự án thư viện:

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

Sau 1) hoặc 2)

ant clean 
ant release 
1

Tôi nghĩ rằng câu trả lời của tôi trên this page cũng áp dụng về lỗi này. Điều này xảy ra khi bạn khởi tạo một lớp ẩn danh trong mã chết.

Giải thích lý do tại sao nó chỉ xảy ra trong bản phát hành chứ không phải trong gỡ lỗi là mã chết được xóa khi được tối ưu hóa.

Các vấn đề liên quan