草庐IT

ProGuard

全部标签

android - proguard 警告 : the configuration keeps the entry point. ...但不是描述符类

我已配置:-keep,allowoptimization,allowobfuscation,allowshrinkingpublicclassorg.jf.dexlib2.dexbacked.**{*;}但仍然收到警告:Note:theconfigurationkeepstheentrypoint'com.trusteer.trf.dex_parser{intget_strings_count(org.jf.dexlib2.dexbacked.DexBackedDexFile);}',butnotthedescriptorclass'org.jf.dexlib2.dexbacked.D

android - 使用 Android 库项目设置 ProGuard

我正在尝试为我的Android项目设置proguard。我的应用程序项目中的代码很少,但引用了一个包含绝大多数代码和任何其他外部jar的库项目。话虽如此,我不确定如何设置proguard以考虑到这一点。现在我的proguard配置文件只是来自theProGuardsite的Android示例.我一直在四处寻找,但没有找到很多或任何关于在库项目中使用proguard的文档,只是jars。我是proguard的新手,所以任何朝着正确方向的插入都会很棒。谢谢。 最佳答案 在库项目中为库指定proguard设置(例如不应混淆哪些库文件)对我

android - 在 Eclipse 中使用 Proguard 进行 Android 开发时,如何检查/升级 Proguard 版本?

这方面的文档非常差。我知道可以通过在项目的rot目录中手动编辑“default.properties”来启用ProGuard。所有设置都进入同一个位置的“proguard.cfg”文件,但我想知道正在使用哪个版本的ProGuard(我使用的是EcliseIndigo)。我还希望能够在发布时将其升级到最新版本。但我找不到任何关于如何做的引用。 最佳答案 ProGuardjar位于AndroidSDK中:android-sdk/tools/proguard/lib/proguard.jar你可以打印出它的版本号java-jarandro

Android - 如何检查 Proguard 混淆是否有效?

我混淆了我的apk,但文件大小仅从12MB减少到10.5MB。它只是相对较小的减少的原因可能是因为我的应用程序使用了几个大型库,但是有什么方法可以检查已执行的混淆级别?以防万一,这是我的proguard-project.txt文件...#ToenableProGuardinyourproject,editproject.properties#todefinetheproguard.configpropertyasdescribedinthatfile.##AddprojectspecificProGuardruleshere.#Bydefault,theflagsinthisfilea

android - 如何在 ProGuard 中使用 -dontwarn?

我正在使用androidstudio构建调试和发布应用程序。当我构建调试/发布应用程序时./gradlewassembleDebug./gradlewassembleRelease两个构建都完美地创建并运行。显示适当的调试或发布对话框现在我在build.gradle中添加了proguard详细信息:signingConfigs{myConfig{storeFilefile("keystore.jks")storePassword"abc123!"keyAlias"androidreleasekey"keyPassword"pqrs123!"}}buildTypes{release{ru

android - 如何让 Proguard 忽略外部库?

我想使用Proguard主要是出于混淆的原因。我的问题是我有三个库,Twitter4J和两个路标库。当我尝试创建签名的APK时,这些库会导致错误。为了克服这个问题,我将以下内容放入proguard.config文件...-dontwarnorg.apache.commons.codec.binary.**-dontwarnorg.slf4j.**-dontwarncom.sun.syndication.io.**-dontwarncom.sun.syndication.feed.synd.*虽然这消除了控制台中的错误,但当我将签名的APK加载到手机上时,它立即崩溃了。DDMS说这是由于

android - 如何告诉 ProGuard 将所有内容保存在特定包中?

我的应用程序有很多Activity并且也使用native库。使用Eclipse生成的默认ProGuard配置,ProGuard删除了许多东西-OnClick方法、静态成员、我的native库使用的回调方法......是否有一种简单的方法可以指示ProGuard不从我的包中删除任何东西?删除东西只节省了大约2.5%的应用程序大小,但完全破坏了我的应用程序。在ProGuard配置中逐类配置、测试和维护它会很痛苦。 最佳答案 编辑此答案已有10年历史-它可能不适用于较新的proguard版本。我认为您至少需要添加这些标志(为您修改单独的包

android - 使用 Proguard 获得警告(使用外部库)

我已启用Proguard,我正在尝试构建APK,但收到很多警告,不知道如何解决。我正在使用Retrofit、Jsoup和其他库存库,我收到以下警告:Warning:okio.DeflaterSink:can'tfindreferencedclassorg.codehaus.mojo.animal_sniffer.IgnoreJRERequirementWarning:okio.Okio:can'tfindreferencedclassjava.nio.file.FilesWarning:okio.Okio:can'tfindreferencedclassjava.nio.file.Pa

java - 如何告诉 proguard 保留枚举常量和字段

我尝试混淆我们使用spring、jaxb并严重依赖注释和反射的Web应用程序。我应用了许多在互联网上找到的食谱来保留一些类、属性、注释和枚举。但是用枚举还是有问题的。我已经能够保留枚举常量应用配置来自http://proguard.sourceforge.net/manual/examples.html#enumerations:-keepclassmembers,allowoptimizationenum*{publicstatic**[]values();publicstatic**valueOf(java.lang.String);}乍一看,它看起来像是有效的解决方案并保留了常量

java - 将内部接口(interface)方法名称保留在 proguard 中

假设我有..publicclassSomeClass{publicinterfacesomeInterface{publicvoidfirstMethod(Stringvariable);publicvoidsecondMethod(Stringvariable);publicvoidthirdMethod();}}我会的..-keep,includedescriptorclassespublicclasscom.somepackage.SomeClass{;;}-keeppublicinterfacecom.somepackage.someInterface{*;}我结束了publi