我在 Android 中的 Proguard 文件出现错误。
关键是,我知道如何在 Android 项目中使用它,但现在,我需要将它用于 Android 库项目,并.jar
提取(库上没有资源)来混淆代码,因为我会喜欢分发我的库供大家使用,但代码被混淆了。
我的 Android 库项目是一个普通的项目,我只是将.jar
with 包含在 Library Project 的“bin”文件夹中,并且我正在尝试使用 Proguard 以这种方式对其进行混淆:
java -jar proguard.jar @proguard-project -verbose
我的 Proguard 文件是下一个:
-injars in.jar -outjars out.jar
-libraryjars /home/jorider/wul4/adt-android/sdk/platforms/android-17/android.jar -libraryjars /home/jorider/wul4/adt-android/sdk/extras/android/support/v4/android-support -v4.jar -libraryjars commons-codec-repackaged-3.1-b36.jar -libraryjars httpmime-4.2.5.jar
-dontusemixedcase 类名 -dontskipnonpubliclibraryclasses -verbose
-dontoptimize -dontpreverify
-keepattributes注解-keep public class com.google.vending.licensing.ILicensingService -keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * { native ; }
-keepclassmembers 公共类 * 扩展 android.view.View { void set*( *); 得到();}
-keepclassmembers 类 * 扩展 android.app.Activity { public void *(android.view.View); }
-keepclassmembers enum * { public static * [] values(); 公共静态 * valueOf(java.lang.String); }
-keep 类 * 实现 android.os.Parcelable { public static final android.os.Parcelable$Creator *; }
-keepclassmembers 类 * .R$ { public static ; }
-不要警告 android.support.**
我在控制台上运行它得到的结果是:
Shrinking...
java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?
有谁知道为什么?
非常感谢!