草庐IT

proguard-rules

全部标签

android - 使用 proguard : java. lang.IncompatibleClassChangeError 和 java.lang.NoSuchMethodError 的 Gradle 发布版本

我最近将一个项目从Eclipse/Ant迁移到AndroidStudio/Gradle。我能够在启用proguard的情况下成功构建项目的签名发布版本。但是,在测试发布版本时,我遇到了某些库项目和jar崩溃(在构建调试版本时工作正常)。例如,当尝试将文件上传到Dropbox(jar依赖项)时,出现以下错误:java.lang.IncompatibleClassChangeError:interfacenotimplementedatcom.dropbox.client2.session.AbstractSession.sign(SourceFile:238)atcom.dropbox.

android - Proguard 没有删除日志调用

当我使用Ant编译我的应用程序时,我可以看到冗长的Proguard输出,并且我设置了删除日志语句的东西(见下文),但是当我运行发布apk时,我试图删除的所有日志语句都在那里.我有2个项目,每个项目都包含一个公共(public)项目。2个主工程和common工程各有一个proguard.cfg文件,里面都有删除日志语句的fragment。有什么我想念的吗?**我所有的日志语句都是Log.d(...)混淆器.cfg-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreve

android - Proguard 使用 DNSJava 库混淆 Android 代码

我有一个android应用程序,它在项目的/libs/目录中有dnsjava.jar。一切都很好,可以打包到APK中(没有proguard)。但是,当我将混淆器引入project.properties(在eclipse中)时,我收到以下警告:[2013-03-0714:16:08-]Proguardreturnedwitherrorcode1.Seeconsole[2013-03-0714:16:08-]Warning:org.xbill.DNS.spi.DNSJavaNameServiceDescriptor:can'tfindsuperclassorinterfacesun.net

java - 适当的 Proguard 配置以保持静态内部类

我有以下内容:publicclassAextendsB{staticclassC{Objectfield1;intfield2;booleanfield3;}}我不能通过反射得到C类!我试过以下方法:-keepclasscom.path.to._class.A$**{*;}-keepclasscom.path.to._class.A$*{*;}-keepclasscom.path.to._class.A$C{*;}-keepclasscom.path.to._class.A$C{;}-keepclasscom.path.to._class.A$C{Objectfield1;intfie

android - 正确覆盖 proguard 选项

我在当前项目中使用ProGuard,并决定尝试优化的android配置(使用gradle):proguardFilesgetDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'我没有找到任何关于proguard和与其兼容的android版本执行的优化的明确文档:-optimizations!code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*如果应用的最低sdk版本是11,它们是最新

Android Proguard - dontobfuscate 不会禁用混淆

关于androidproguard混淆的问题。出于某种原因,在使用ant生成apk时,我希望proguard缩小大小(删除未使用的类)但不混淆名称。在proguard.cfg中,我添加了:-dontobfuscateproguard.cfg中的所有其他是-dontwarn或-keepclass。但是反编译生成的apk(dex2jar)后,发现很多名字还是被混淆了。为什么会这样?谢谢 最佳答案 由于实际上没有人回答这个问题,这里是解决问题的帖子的链接:UsingProguardwithAndroidwithoutobfuscation

android - 设置 Gradle 以将 ProGuard 映射文件发送到 Firebase 的困难

我正在尝试关注这个documentationtutorial通过Firebase将AndroidStudio设置为在为我的Android应用程序构建发布APK时自动发送我的ProGuard映射文件。但是,我似乎无法理解“使用Gradle上传ProGuard映射文件”部分的第4步和第5步,主要是因为我没有在我的项目中找到任何gradle.properties文件根路径或主路径,因为我希望在AndroidStudio中自动执行app:firebaseUploadReleaseProguardMapping任务,我不知道该怎么做。这是我在项目根目录中创建的gradle.properties文

android - Proguard:已删除列表

我想检查删除了哪些类和方法。有什么办法可以实现吗?我知道mapping.txt显示哪些符号被混淆了。但据我所知,删除的内容并未在此处列出。Proguardwebsite没有对此进行描述。 最佳答案 选项-printusage写出未使用的类、字段和方法。AndroidGradle构建默认写入build/outputs/mapping/release/usage.txt。 关于android-Proguard:已删除列表,我们在StackOverflow上找到一个类似的问题:

Easy-Rules引擎

Easy-Rules规则引擎使用情景:​当代码需要多次进行if/else硬编码的时候,会导致代码的可读性大大降低,后期维护的成本增高。所以引入规则引擎,easy-rules是一个简单但是功能强大的规则引擎,提供了以下特性:轻量级框架和易学习的API基于POJO的开发支持从原始规则进行规则的组合支持表达式(MVEL,SPEL和JEXL)定义规则主要的接口:​Rules(规则接口),Facts(事实接口),RulesEngine(规则引擎接口)快速开始下面使用POJO的方式进行示例想了MVEL等方式定义的实例转到:https://segmentfault.com/a/119000002293925

android - Proguard 返回 Google Play 服务库错误

我将GooglePlay服务库添加到我的应用程序中。一切正常,但我的apk的大小增加了4(!)倍,从350KB增加到1.6MB。为了从GooglePlay服务库中删除未使用的类,我决定使用ProGuard。但是现在我无法运行项目或将其导出到apk,因为ProGuard返回了错误。当我不使用GPS库时,导出没有问题,但我无法使用该库创建apk。我读了很多关于这个问题的资料,但我找到的任何解决方案都没有帮助我。这是我的proguard-project.txt(推荐here)-keepclass*extendsjava.util.ListResourceBundle{protectedObj