我正在尝试使用使用 Android SDK 的 Proguard 来混淆我的代码。我在 .pro 文件中遇到语法错误。我试图更新 proguard jar 文件,但没有任何帮助。我搜索了 SO 并找到了一个问题,但没有一个答案有帮助。
我已经包含了控制台日志和我的 proguard.cfg。我该如何解决这个问题?
我的控制台日志:
[2012-05-11 20:12:09 - WrtsMobile] Proguard returned with error code 1. See console
[2012-05-11 20:12:09 - WrtsMobile] Error: @C:\Users\SEBAST~1\AppData\Local\Temp\android_5842287394885430823.pro (De syntaxis van de bestandsnaam, mapnaam of volumenaam is onjuist)
[2012-05-11 20:14:19 - WrtsMobile] Proguard returned with error code 1. See console
[2012-05-11 20:14:19 - WrtsMobile] Error: @C:\Users\SEBAST~1\AppData\Local\Temp\android_5684176843163078198.pro (De syntaxis van de bestandsnaam, mapnaam of volumenaam is onjuist)
[2012-05-11 20:15:47 - WrtsMobile] Proguard returned with error code 1. See console
[2012-05-11 20:15:47 - WrtsMobile] Error: @C:\Users\SEBAST~1\AppData\Local\Temp\android_9001247977726315753.pro (De syntaxis van de bestandsnaam, mapnaam of volumenaam is onjuist)
[2012-05-11 20:16:55 - WrtsMobile] Proguard returned with error code 1. See console
[2012-05-11 20:16:55 - WrtsMobile] Error: @C:\Users\SEBAST~1\AppData\Local\Temp\android_3864890478425790438.pro (De syntaxis van de bestandsnaam, mapnaam of volumenaam is onjuist)
[2012-05-11 20:21:14 - WrtsMobile] Proguard returned with error code 1. See console
[2012-05-11 20:21:14 - WrtsMobile] Error: @C:\Users\SEBAST~1\AppData\Local\Temp\android_7512228833969245252.pro (De syntaxis van de bestandsnaam, mapnaam of volumenaam is onjuist)
我的 proguard.cfg:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keepattributes LineNumberTable
-keep public class * extends android.app.Activity
-keep public class * extends android.support.v4.app.FragmentActivity
-keep public class * extends android.app.Application
#To remove debug logs:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** w(...);
}
#Maintain java native methods
-keepclasseswithmembernames class * {
native <methods>;
}
#To maintain custom components names that are used on layouts XML:
-keep public class * extends android.view.View {
public <init>(android.content.Context);
}
-keep public class * extends android.view.View {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keep public class * extends android.view.View {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
#Maintain enums
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#To keep parcelable classes (to serialize - deserialize objects to sent through Intents)
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class **.R$* {
public static <fields>;
}