2012-05-11 3 views
0

Я пытаюсь обфускать свой код с помощью Proguard с помощью Android SDK. Я получаю синтаксическую ошибку в файле .pro. Я попытался обновить файлы jar proguard, но ничего не помогло. Я искал 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

Замена Proguard в последней версии (4.8) Устранена проблема, @ в имени файла только часть ошибки, говоря: «Он появился здесь»

1

процесс сборки, как представляется, добавить дополнительный «@» перед именем файла, в результате чего в имени файла которые не могут быть найдены. Если вы используете Android SDK, убедитесь, что у вас установлена ​​последняя версия.

+0

Конечно, я имею последнюю версию Android SDK, Proguard и все остальное. Возможно, я могу изменить свой процесс сборки. –

Смежные вопросы