如何从proguard中排除.so文件?

时间:2011-08-02 18:50:21

标签: android obfuscation proguard shared-objects

这是我目前用于Android项目的proguard配置文件:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-repackageclasses
-libraryjars "libs/**.so"
-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 com.android.vending.licensing.ILicensingService

-keep public class com.scoreloop.** {*;}
-keep public class com.facebook.** {*;}
-keep public class com.google.ads.** {*;}

-keepclasseswithmembernames class * {
    native <methods>;
}

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

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

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

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

-assumenosideeffects class android.util.Log {
    public static *** i(...);
    public static *** v(...);
    public static *** d(...);
}

防止Proguard试图弄乱共享对象的正确方法是什么?我将其添加到项目后立即收到错误,并尝试导出应用程序:You should check if you need to specify additional program jars.在我添加-libraryjars行后,它会给我:java.io.IOException: Can't read [proguard.ClassPathEntry@56f0474c] (No such file or directory)。我如何修复我的Proguard配置文件?

1 个答案:

答案 0 :(得分:0)

(CFR)。 ProGuard手册&gt; Troubleshooting

上面的控制台输出“您应该检查是否需要指定其他程序jar。”实际上告诉了什么是错的。