Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用proguard禁用文件名_Java_Android_Proguard - Fatal编程技术网

Java 使用proguard禁用文件名

Java 使用proguard禁用文件名,java,android,proguard,Java,Android,Proguard,我正在用proguard和Android Studio混淆我的apk 当我反编译我的apk时,我可以看到很多文件,比如aaa.java、aab.java。等 但是我的项目中的所有文件都具有原始名称 有没有办法混淆我的项目的文件名 这是我的proguard-rules.pro ##---------------Begin: proguard configuration common for all Android apps ---------- -optimizationpasses 5

我正在用proguard和Android Studio混淆我的apk

当我反编译我的apk时,我可以看到很多文件,比如aaa.java、aab.java。等 但是我的项目中的所有文件都具有原始名称

有没有办法混淆我的项目的文件名

这是我的proguard-rules.pro

    ##---------------Begin: proguard configuration common for all Android apps ----------
-optimizationpasses 5
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*


#-injars      bin/classes
#-injars      libs
#-outjars     bin/classes-processed.jar



-allowaccessmodification
#-keepattributes *Annotation*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable, LocalVariableTable,LocalVariableTypeTable
-repackageclasses ''


#-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
-dontnote com.android.vending.licensing.ILicensingService

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

# Explicitly preserve all serialization members. The Serializable interface
# is only a marker interface, so it wouldn't save them.
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}


# Preserve all native method names and the names of their classes.
-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclassmembers class * extends android.content.Context {
   public void *(android.view.View);
   public void *(android.view.MenuItem);
}

#-keepclassmembers class **.R$* {
#    public static <fields>;
#}

-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}


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


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


# Preserve static fields of inner classes of R classes that might be accessed
# through introspection.
-keepclassmembers class **.R$* {
  public static <fields>;
}


# Preserve the special static methods that are required in all enumeration classes.
#-keepclassmembers enum * {
#    public static **[] values();
#    public static ** valueOf(java.lang.String);
#}


#-keep public class * {
#    public protected *;
#}

##---------------End: proguard configuration common for all Android apps ----------


##---------------Begin: proguard configuration for Gson  ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature


# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }


# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }


##---------------End: proguard configuration for Gson  ----------

##---------------Begin proguard configuration for Google Maps --------------------

-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**

-keep class org.** { *; }
-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}


-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

##---------------End proguard configuration for Google Maps --------------------

##---------------Begin proguard configuration for my libs  -----------------------
-keep class com.todddavies.components.progressbar.** { *; }
-dontwarn com.todddavies.components.progressbar.**

-dontwarn org.apache.**

#-keep class * implements android.os.Parcelable {
#  public static final android.os.Parcelable$Creator *;
#}
-keepclassmembers class * implements android.os.Parcelable {
    static ** CREATOR;
}
-keep class com.myapp.mobile.Pdv.** { *; }
-keep interface  com.myapp.mobile.Pdv.** { *; }

#Disable logging

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** i(...);
}
-keep class com.myapp.mobile.vo.Captura { *; }
-keep class com.myapp.mobile.vo.Formulario { *; }
-keep class com.myapp.mobile.vo.Metrica { *; }
-keep class com.myapp.mobile.vo.Pdv { *; }
-keep class com.myapp.mobile.vo.Proyecto { *; }
-keep class com.myapp.mobile.vo.Producto { *; }    

你试过添加这个吗

-flattenpackagehierarchy
我还建议您检查一下是否真的需要这些物品(如果不需要,请将其移除):


检查build.gradle文件是否正确。

是的,我真的需要它。。。我认为我的对象是可读的,但模型和控制器不应该是可读的。我将尝试第一行,并告诉您我尝试了-扁平化PackageHierarchy,没有发现任何差异:(@JuliatzindelToro好的,你确定你在build.gradle中正确使用了Proguard吗?我已经用另一个建议更新了我的答案是的,我想说我确定,我只有一个配置要发布…我加入了我的build.gradle,这样你就可以看到它了-FlattPackageHierarchy什么都没有,因为我已经有:-重新打包类“”,它超过了根据doc:aaa.java是你的模糊文件名,你还有什么意思?@Blundell我不确定你的意思是什么…我希望我的MainActivity.class像我的apk中的其他文件一样有一个像aaa.java这样的名称。啊,那么你的意思是除了你包名下的文件之外,所有的东西都是模糊的。嗯,在我的包中,代码是模糊的,但我不喜欢o混淆文件名,因此我更难找到核心代码。目前,NoProGuard不会混淆XML,这也是为什么它不会混淆从XML引用的自定义视图类。
-flattenpackagehierarchy
-keep class com.myapp.mobile.vo.Captura { *; }
-keep class com.myapp.mobile.vo.Formulario { *; }
-keep class com.myapp.mobile.vo.Metrica { *; }
-keep class com.myapp.mobile.vo.Pdv { *; }
-keep class com.myapp.mobile.vo.Proyecto { *; }
-keep class com.myapp.mobile.vo.Producto { *; } 
...