2012-05-25 1 views
0

У меня проблема с запутыванием кода Android. Я использую Proguard версии 4.7 и Eclipse в качестве моей IDE. Я изменил свои proguard.cfg к этому:Ошибка обфускации кода Android

-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.Service 
-keep public class * extends android.content.BroadcastReceiver 
-keep public class * extends android.content.ContentProvider 
-keep public class * implements android.view.View.OnTouchListener 
-keep class * extends android.view.View { 
    public <init>(android.content.Context); 
    public <init>(android.content.Context, android.util.AttributeSet); 
    public <init>(android.content.Context, android.util.AttributeSet, int); 
    public void set*(...); 
} 
-keep class * extends android.preference.Preference { 
    public <init>(android.content.Context); 
    public <init>(android.content.Context, android.util.AttributeSet); 
    public <init>(android.content.Context, android.util.AttributeSet, int); 
    public void set*(...); 
}  
# LVL License binder class 
-keep class com.android.vending.licensing.ILicensingService  
# This is necessary for LVL among others. According to proguard doc java accesses enum fields by introspection. 
-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
} 
#Optimization settings 
-dontoptimize 

Когда я составляю мой проект, я получаю сообщение об ошибке, и я не могу решить. Вот ошибка:

Unable to execute dex: Multiple dex files define Lchangebackground/app/OnSwipeListener 
Conversion to Dalvik Format failed: Unable to execute dex: Multiple dex files define Lchangebackground/app/OnSwipeListener 

ответ

0

Это обычно означает, что вы дважды включаете библиотеку или какую-либо другую проблему с вашим классом. Поместите все свои банки под libs/и очистите свои проекты. Проверьте разные версии одной и той же библиотеки и включите библиотеки через связанные проекты библиотек.

+0

спасибо за ответ, но я все равно не понимаю. как я это делаю? – user1008497

+0

Если у вас есть два файла library-v1.jar и library-v2.jar, включенные (прямо или косвенно), вы получите эту ошибку. Изучите зависимости вашего проекта (ов). –

+0

есть android.jar и proguard.jar в комплекте? еще одна вещь, это нормально, если я запутался с помощью GUI proguard? – user1008497