2012-05-11 18 views
0

Android SDKを使用してProguardを使用してコードを難読化しようとしています。 .proファイルで構文エラーが発生しました。私はproguard jarファイルを更新しようとしましたが何も助けませんでした。私はSOを検索して質問を見つけましたが、答えのどれも助けられませんでした。Android Proguard構文エラー

コンソールログと私の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>; 
} 

答えて

0

は、ファイル名に@がエラーの一部だけ言って、問題を修正しました:「それはここに登場し、」もちろん

1

ビルドプロセスがファイル名で、その結果、ファイル名の前に余分な「@」を追加するように見えますそれは見つからない。 Android SDKを使用している場合は、最新バージョンがインストールされていることを確認してください。最新バージョン(4.8)でProGuardの交換

+0

を私は、Android SDKの最新バージョンを持っています、 Proguardと他のすべて。たぶん私は自分のビルドプロセスを変更することができます。 –