2011-12-16 40 views
8

Tôi cố gắng để chạy Proguard trên ứng dụng Android của tôi và chạy vào vấn đề này.Proguard và Android :(

Tôi đang sử dụng jar SpongyCastle (sao chép và quá khứ của toàn lâu đài bouncy với gói đổi tên vì vậy nó không mâu thuẫn với android lâu đài bouncy được xây dựng trong phiên bản)

Khi chạy Proguard tôi thấy sau

làm thế nào để sửa lỗi này? Thêm rt.jar để libs của tôi?

toàn bộ các điểm Proguard là để thu nhỏ mã, nhưng tôi tiếp tục thêm các lọ để tránh những thứ này kiện nơi proguard than phiền nó không thể tìm thấy một lớp học! Tui bỏ lỡ điều gì vậy?

[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.InitialDirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.InitialDirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchResult 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchResult 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.Attributes 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.Attribute 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.Attribute 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingException 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.Attributes 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchResult 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingException 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Note: the configuration refers to the unknown class 'android.app.backup.BackupAgentHelper' 
[proguard] Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService' 
[proguard] Note: there were 2 references to unknown classes. 
[proguard]  You should check your configuration for typos. 
[proguard] Warning: there were 57 unresolved references to classes or interfaces. 
[proguard]   You may need to specify additional library jars (using '-libraryjars'), 
[proguard]   or perhaps the '-dontskipnonpubliclibraryclasses' option. 

UILD FAILED 
:\AndroidSDK\android-sdk_r12-windows\android-sdk-windows\tools\ant\build.xml:713: Please correct the above warnings first. 

Cập nhật

ANT Script 

tôi đã sử dụng để tạo ra các android update project --path . build.xml như dự án đã tạo ra đôi khi trước đây và tôi đã không thực hiện bất kỳ thay đổi

<?xml version="1.0" encoding="UTF-8"?> 
    <project name="RootActivity" default="help"> 
     <loadproperties srcFile="local.properties" /> 
     <property file="ant.properties" /> 
     <loadproperties srcFile="project.properties" /> 
     <fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'" unless="sdk.dir" /> 
     <import file="${sdk.dir}/tools/ant/build.xml" /> 
    </project> 
+0

Bạn có thể đăng một phần kịch bản kiến ​​của mình có trách nhiệm không? Điều này có vẻ giống như một vấn đề với việc nhập khẩu các thư viện java chuẩn trong android ... – SuperTron

+0

Tôi đã sử dụng dự án cập nhật android --path. để tạo tệp build.xml khi dự án được tạo ra cách đây không lâu và tôi chưa thực hiện bất kỳ thay đổi nào user964283

+0

Có [issue # 27612] có liên quan (http://code.google.com/p/android/issues/ chi tiết? id = 27612). –

Trả lời

4

tôi don không nghĩ rằng cần phải thêm rt.jar vào thư viện của bạn. Bạn cần phải chắc chắn rằng bạn đang tham khảo nó đúng trong kịch bản proguard của bạn. Hãy xem here để biết ví dụ. Dòng này trong phần 2 là nhà sản xuất tiền:

-libraryjars ${java.home}/lib/rt.jar 

Mặc dù, cú pháp đó thay đổi nếu bạn sử dụng ký pháp xml cho proguard. Nếu bạn đăng một phần của kịch bản kiến ​​có trách nhiệm tôi có thể cố gắng hỗ trợ thêm. Hi vọng điêu nay co ich!

+0

đã hoạt động! cảm ơn – user964283

18

Thêm thông tin sau, -dontwarn javax.naming.**, vào cấu hình Proguard của bạn.

Chúng chỉ là cảnh báo và bỏ qua chúng không phải là vấn đề.

+0

điều này cũng hoạt động, cảm ơn – user964283

+9

Đây là giải pháp được đề xuất chính thức. Gói đặt tên bị thiếu trên Android, nhưng dường như điều này không gây ra bất kỳ sự cố nào. –

+0

Đối với những người khác gặp vấn đề tương tự nhưng với công cụ dựa trên gradle (android studio) - hãy xem câu trả lời này: http://stackoverflow.com/q/18481752/1041533 và đảm bảo bao gồm cả hai tệp proguard chính xác!Cái mặc định và của bạn với các câu lệnh trên trong nó – AgentKnopf

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