2

私は正常に動作している動作中の dexguard プロジェクトを持っています。appcompat-v7 v21.0.0 のバグのため、2 つのクラスを難読化したいと考えています。問題は、私がそれを行うことができないということです。難読化を回避する矛盾したルールがあると思います。これが私のプロガードファイルです:

-dalvik
-repackageclasses ''
-allowaccessmodification
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keepresourcexmlattributenames
    manifest/installLocation,
    manifest/versionCode,
    manifest/application/*/intent-filter/*/name

-encryptnativelibraries lib/**/libnativeBatterySupport.so

-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

-keepclasseswithmembernames class * {
    native <methods>;
}

-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*(...);
}

-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.content.Context {
   public void *(android.view.View);
   public void *(android.view.MenuItem);
}

-keepclassmembers class * implements android.os.Parcelable {
    static ** CREATOR;
}

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

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

-keep public class * extends android.app.Fragment {
    <init>(...);
}
-keep public class * extends android.support.v4.app.Fragment {
    <init>(...);
}

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

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

# Preserve Android support libraries` classes and interfaces
#-keep class android.support.** { *; }
#BIG HACK TO AVOID A CRASH BECAUSE OF SHITTY appcompat 21.
-keep class !android.support.v7.internal.view.menu.**,android.support.** {*;}
-keep interface android.support.** { *; }

ご覧のとおり、難読化しようとしているのはandroid.support.v7.internal.view.menu.**. このクラスのサブセットで難読化が機能しない理由を誰か提案できますか?

4

0 に答える 0