2017-07-03 3 views
0

私はproguardで新しく、私はhttp://www.javadecompilers.comを使用してプログラムの設定を確認しています。proguardを実行した後に元のクラス名が見つかりました

クラス名は難読化されています。しかし、元のクラス名はjavadecompilerにあります。

元のクラス名を非表示にする設定はありますか?

java decompiler output

ファイル:あなたは、元のファイル名を決定することができる理由ProGuardの-project.txt

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
#-dontskipnonpubliclibraryclassmembers 
-dontpreverify 
-verbose 
-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 * extends android.util.Log 

-keepclasseswithmembernames class * { 
native <methods>; 
} 

-keepclasseswithmembers class * { 
public <init>(android.content.Context, android.util.AttributeSet); 
} 

-keepclasseswithmembers class * { 
public <init>(android.content.Context, android.util.AttributeSet, int); 
} 

-keepclassmembers class * extends android.app.Activity { 
public void *(android.view.View); 
} 

-keepclassmembers enum * { 
public static **[] values(); 
public static ** valueOf(java.lang.String); 
} 

-keep class * implements android.os.Parcelable { 
public static final android.os.Parcelable$Creator *; 
} 

-keep class android.support.v4.app.** { *; } 
-keep interface android.support.v4.app.** { *; } 
-keep class com.actionbarsherlock.** { *; } 
-keep interface com.actionbarsherlock.** { *; } 

-keepattributes *Annotation*,SourceFile,LineNumberTable 

# goolge map 
-keep class android.location.** { *; } 

-keepnames class com.google.android.maps.** {*;} 
-keep public class com.google.android.maps.** {*;} 

-dontwarn com.google.android.maps.GeoPoint 
-dontwarn com.google.android.maps.MapActivity 
-dontwarn com.google.android.maps.MapView 
-dontwarn com.google.android.maps.MapController 
-dontwarn com.google.android.maps.Overlay 
-dontwarn com.google.** 

-keep class com.google.** { *; } 
-keep interface com.google.** { *; } 

答えて

0

理由は、この行のSourceFile属性によるものです:

-keepattributes *Annotation*,SourceFile,LineNumberTable 

あなたはそれを削除することでその動作を変更することができます:

-keepattributes *Annotation*,LineNumberTable 

またはその代わりに、元のファイル名のプレースホルダを使用するようにProGuardのを強制することによって:

-keepattributes *Annotation*,SourceFile,LineNumberTable 
-renamesourcefileattribute SourceFile 
関連する問題