2012-03-11 35 views
28

Tôi gặp lỗi "Chuyển đổi sang định dạng Dalvik không thành công với lỗi 1" khi sử dụng cờ -dontobfuscate. Nếu không, ứng dụng của tôi sẽ xuất tốt. Tôi không muốn obfuscate vì tôi đang sử dụng BugSense để theo dõi lỗi và họ tính phí $ 99 một tháng nếu bạn cần phải de-obfuscate dấu vết ngăn xếp của bạn. Tôi vẫn muốn nhận được kích thước tập tin và lợi ích tối ưu hóa của proguard.Sử dụng Proguard với Android mà không bị làm phiền

Nếu tôi nhận xét - hãy cố gắng hết sức mọi thứ hoạt động tốt. Ngoại trừ các dấu vết ngăn xếp không thể đọc được.

tập tin progaurd.cfg tôi:

-dontobfuscate 
-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 

-keep public class * extends android.app.Activity 
-keep public class * extends android.app.Application 
-keep public class * extends android.app.Service 
-keep public class * extends android.content.BroadcastReceiver 
-keep public class * extends android.content.ContentProvider 
-keep public class * extends android.app.backup.BackupAgentHelper 
-keep public class * extends android.preference.Preference 
-keep public class com.android.vending.licensing.ILicensingService 

-keepclasseswithmembernames class * { 
    native <methods>; 
} 

-keepclasseswithmembers class * { 
    public <init>(android.content.Context, android.util.AttributeSet); 
} 

-keepclasseswithmembers class * { 
    public <init>(android.content.Context, android.util.AttributeSet, int); 
} 

-keepclassmembers class * extends android.app.Activity { 
    public void *(android.view.View); 
} 

-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
} 

-keep class * implements android.os.Parcelable { 
    public static final android.os.Parcelable$Creator *; 
} 

tôi cũng sẽ chấp nhận một câu trả lời mà chỉ cho tôi đi đúng hướng. Có một tệp nhật ký mà tôi nên xem không?

Trả lời

2

Bạn nên đảm bảo rằng bạn đang sử dụng phiên bản Android SDK mới nhất hoặc ít nhất phiên bản mới nhất của ProGuard (phiên bản 4.7 tại thời điểm viết bài này) bên trong SDK (android-sdk/tools/proguard/lib/proguard.jar).

+0

Tôi đang sử dụng 4.7 hiện nay. – theJosh

+0

Nó có thể là một lỗi trong ProGuard hoặc trong công cụ dex. Nếu bạn có thể cung cấp mẫu cho phép tái tạo sự cố, trên trình theo dõi lỗi ProGuard, tôi sẽ xem xét nó. –

33

Thêm! Mã/phân bổ/biến là cách giải quyết cho lỗi Proguard khi -dontobfuscate được thiết lập để -optimizations bạn

Ví dụ

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable 
+0

có, có vẻ như '-dontobfuscate' cần '! Mã/phân bổ/biến' – sherpya

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