2012-02-10 28 views
11

Tôi muốn biên dịch với Proguard dự án Android của tôi với một số Dự án Thư viện Android bổ sung. Trong thực tế, hầu hết các mã và tài nguyên nằm trong các thư viện này.Dự án Thư viện Android: Làm xáo trộn và giữ tài nguyên

Tôi đã thêm dòng "proguard.config = proguard.cfg" vào project.properties của dự án chính, tôi đã định cấu hình cfg-file (-libraryjars .. \ libs). Sau đó - nhấp chuột phải, Công cụ Android -> Xuất gói ứng dụng đã ký. ADT biên dịch dự án cho phát hành nhưng ứng dụng bị rơi ở lần khởi chạy đầu tiên: khi tôi đọc từ nhật ký, đó là do con trỏ tài nguyên sai.

Tôi đã decompiled dự án và phát hiện ra điều rất lạ: nếu tôi tuyên bố tài nguyên trong thư viện, sau đó tài nguyên con trỏ trên nó trở thành 0.

Vấn đề không biến mất khi tôi thêm dòng "proguard.config = proguard.cfg "vào project.properties của tất cả Dự án Thư viện Android của tôi.

Bất kỳ giải pháp?

Edit: nhìn vào mảnh proguard.cfg:

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-optimizations ! 

-printusage unused.txt 
-optimizationpasses 2 
-printmapping mapping.txt 
# -overloadaggressively 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-dump class_files.txt 
-printseeds seeds.txt 

-libraryjars ..\libs 
+0

Tại sao bạn cần cấu hình bảo vệ trong các dự án thư viện? Đây là cấu hình proguard trong dự án đích được sử dụng. – pandre

+0

Nó không quan trọng nếu tôi thêm hoặc loại bỏ "proguard.config" vào các dự án thư viện. Tôi đã nói về nó chỉ để biết thông tin đầy đủ. – QuickNick

+0

Đăng tệp cấu hình bảo vệ của bạn. – 500865

Trả lời

1

Bạn có chắc chắn rằng bạn có những công cụ mới nhất? Giống như Eclipse Indigo, ADT v16.0.1 và proguard 4.7? Tôi cũng gặp vấn đề trước khi cập nhật các công cụ mới nhất.

+0

Tôi sử dụng bản cập nhật mới nhất của ADT (Tôi thường xuyên kiểm tra bản cập nhật) và Công cụ Android. Eclipse có phiên bản "Helios". – QuickNick

+0

Vì hôm nay plugin ADT cho phép tôi biên dịch thư viện với sự làm xáo trộn, tôi quyết định đóng câu hỏi và tặng câu trả lời được chấp nhận cho bạn. – QuickNick

1

Bạn bao gồm/tham chiếu đến Dự án thư viện Android của mình như thế nào? Nếu tôi đọc nó một cách chính xác, bạn thêm chúng như một cái bình? Nếu vậy bạn thực sự có thể gặp rắc rối với các tài nguyên được cung cấp bởi các dự án thư viện.

Nếu tôi đúng, hãy thử điều đó:

Sử dụng Cài đặt dự án và thêm dự án thư viện của bạn ở đó. Không sử dụng một số lọ xuất khẩu cho điều đó. Cách hoạt động của Dự án Thư viện Android là khác với thư viện java bình thường.

+0

Tôi bao gồm tham chiếu cho ALP khi bạn mô tả: Cài đặt dự án -> Thêm thư viện. Không có lọ xuất khẩu. – QuickNick

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