android混淆及报错解决
android混淆及报错解决
问题一:报错:Proguard returned with error
code 1. See console proguard.ParseException: Unknownoption 'and' in argument number 9
原因:查看你的工程目录里是否有空格或中文,有的改下就好了
混淆步骤:使用android2.2.3以上版本创建工程,可以看到proguard.cfg,这就是混淆配置文件。然后修改project.properties(android2.2以下应该是default.properties)文件:proguard.config=proguard.cfg 如果你的是android2.2.3以下的也可以找一个proguard.cfg拷贝过去,步骤一样。但是你一定要看下你的SDK文件夹D:\android-SDK\tools\下一定得有proguard文件夹,这是负责混淆的
问题二:使用外部jar文件,混淆出错!
解决办法:在proguard.cfg改成
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dontwarn
-dontskipnonpubliclibraryclassmembers
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
如果还报错再试试解决办法:将proguard.cfg中的"-dontpreverify"改成“-dontoptimize”
我的最终:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontoptimize
-verbose
-dontwarn
-dontskipnonpubliclibraryclassmembers
-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
}
-keepclasseswithmembers class * {
public
}
-keepclasseswithmembers class * {
public
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(https://www.360docs.net/doc/3612796553.html,ng.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}