首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android图书馆中的Pro卫兵

Android图书馆中的Pro卫兵
EN

Stack Overflow用户
提问于 2013-08-13 06:15:36
回答 1查看 1.7K关注 0票数 1

我在Android中使用Proguard文件时出错了。

关键是,我知道如何在Android中使用它,但是现在,我需要将它用于Android项目,并且提取.jar (库中没有资源)来混淆代码,因为我想分发我的库供每个人使用,但是代码被混淆了。

我的Android库项目是一个正常的项目,我只使用包含在库项目中的"bin“文件夹中的.jar,并且我试图以这种方式使用Project来混淆它:

代码语言:javascript
复制
java -jar proguard.jar @proguard-project -verbose

我的Proguard文件是下一个:

-injars in.jar -outjars out.jar /home/jorider/wul4/adt-android/sdk/platforms/android-17/android.jar /home/jorider/wul4/adt-android/sdk/extras/android/support/v4/android-support-v4.jar -libraryjars -libraryjars公用-编解码器-重新打包-3.1-b36.jar -libraryjars httpmime-4.2.5.jar -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose -dontoptimize -dontpreverify 公共类com.google.vending.licensing.ILicensingService -keep公共类com.android.vending.licensing.ILicensingService -keepclasseswithmembernames类*{本机;} -keepclassmembers公共类*扩展android.view.View { void *(*); get();} -keepclassmembers类*扩展了android.app.Activity {公共无效*(android.view.View);} -keepclassmembers枚举*{公共静态*[]值();公共静态* valueOf(java.lang.String);} -keep类*实现android.os.Parcelable {公共静态最终android.os.Parcelable$Creator *;} -keepclassmembers类*.R$ {公共静态;} -dontwarn android.support.**

在控制台上运行该程序的结果是:

代码语言:javascript
复制
Shrinking...
java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?

有人知道为什么吗?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-08-13 22:36:31

您可以在ProGuard手册>示例> 典型的图书馆中找到处理库的配置。

特别要注意的是,您需要保存所有公共API:

代码语言:javascript
复制
-keep public class * {
    public protected *;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18201926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档