草庐IT

proguarded

全部标签

android - 如何配置 Proguard 以删除重要的日志消息?

Proguard可以很好地移除琐碎日志调用。(使用assumenosideeffects关键字)但它处理重要日志调用的效果很差。我所说的“非平凡”不仅仅是一个字符串。例如:Log.i(TAG,"velocity="+velocity)"。Proguard保留了newStringBuilder("velocity=")以及保留值的附加变量,没有太多地掩盖该变量。它仅删除对Log的最终调用。字符串将保留在那里,浪费内存、cpu周期,还有助于破解者理解代码。因此,为了解决这个问题,我使用if(BuildConfig.DEBUG){...}将我的应用中的每个重要调试日志调用包装起来。但是用if

Android:如何使用 ProGuard 删除 SLF4J 调试日志记录

我在我的Android应用程序中使用SLF4J进行日志记录。在发布版本中,我不希望出现所有调试日志,因此我尝试使用ProGuard删除它们。但是日志语句仍然打印到logcat控制台,我无法自己弄清楚我做错了什么。这是我第一次使用ProGuard,所以非常感谢任何帮助!谢谢!MainActivity.javaimportorg.slf4j.Logger;importorg.slf4j.LoggerFactory;publicclassMainActivity{privatestaticfinalLoggerlog=LoggerFactory.getLogger(MainActivity.

java - 在 ProGuard for Android 中禁用主动重载

为了简化用户的堆栈跟踪分析,我想在ProGuard混淆我的Android应用程序时禁用“积极重载”。在我混淆的APK中,我经常有一些类在同一个类中包含多个名为a()的方法/字段,这很难分析堆栈跟踪,因为它不包含方法参数或行号.根据ProGuarddocumentation,使用选项-overloadaggressively强制此重载。问题是ProGuard在混淆我的应用程序时似乎使用了这个选项,即使我的ProGuard配置文件不包含这个选项:-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryc

Android Proguard - 保留所有第 3 方库是最佳做法吗?

我正在为使用第3方库的应用程序配置Proguard。包含以下行是否是“最佳实践”(为了避免将来难以发现的错误):-keepclass3rd_party_lib_name.**{*;}对于每个没有来自其开发人员的特定Proguard说明的第3方开源库?此外,还有一个相关问题:对于我应该使用哪些情况,是否有一般指南-keepclass在什么情况下我应该使用-keeppublicclass非常感谢 最佳答案 proguard和代码混淆的主要问题一般是类名、方法和字段名被修改。(即myExplicitMethodName()变成了a())当

java - 使用 proguard 混淆时使用 Retrofit 的自定义错误处理给出 java.lang.reflect.UndeclaredThrowableException

为改造编写了自定义错误处理。当minifyEnabledfalse时,代码可以完美运行。当我启用proguard时,出现以下异常12-1710:14:07.68818568-19041/com.mobility.cariq.carscoreW/System.err﹕java.lang.reflect.UndeclaredThrowableException12-1710:14:07.68818568-19041/com.mobility.cariq.carscoreW/System.err﹕at$Proxy9.updatesForModel(NativeMethod)12-1710:1

android - Proguard 和 XmlPullParser 的问题

我在使用Proguard和一些库的Android项目上遇到了一些麻烦。具体来说,我遇到了XmlPullParser冲突,无论我做什么,似乎都无法解决它。以下是我正在使用的库:JacksonParser,包括:Jackson-all.1.6.4.jarJoda-time.1.6.2.jarjsr311-api-1.0.jarstax2-api-3.0.0.jarXStream,其中包括:xpp3_min-1.1.4c.jarxstream-for-android-1.0.0.jar还有其他一些,但它们不是问题。这些似乎是我们问题的罪魁祸首。具体来说,问题是:优化如果我进行优化,我会得到“

android - 带有 proguard 问题的发布版本 - GSON

如果我在调试中构建我的应用程序,它会完美运行。但是,当我使用proguard构建发布版时,出现了几个错误,然后构建失败了。错误总结:Warning:therewere445unresolvedreferencestoclassesorinterfaces.Warning:therewere13instancesoflibraryclassesdependingonprogramclasses.我修改了我的proguard-rules.txt文件,如下所示。这允许构建成功,但是当我安装应用程序时,亚马逊下载不起作用(在调试版本中工作)。-keepclassorg.xmlpull.v1.*

Android proguard 错误 com.google.ads.util.i : and setMediaPlaybackRequiresUserGesture(boolean)

我正在尝试创建一个APK文件,但是当我在导出对话框中按“完成”时,出现错误,并且未创建APK。到目前为止在网上找不到任何东西,也许这里有人可以提供帮助?错误:Proguardreturnedwitherrorcode1.SeeconsoleWarning:com.google.ads.util.i:can'tfindreferencedmethod'voidsetMediaPlaybackRequiresUserGesture(boolean)'inclassandroid.webkit.WebSettingsYoushouldcheckifyouneedtospecifyadditi

android - 通过 1.1.3 - Proguard

当我使用proguard生成apk版本并使用FingerprintSamsung所需的库(pass-v1.1.3.jar、sdk-v1.0.0.jar)时,出现以下错误:Proguardreturnedwitherrorcode1.Seeconsole[2015-05-0719:56:57-]Warning:com.samsung.android.sdk.pass.SpassFingerprint$b:can'tfindsuperclassorinterfacecom.samsung.android.fingerprint.IFingerprintClient$Stub[2015-05

Android Proguard 选项 - 更严格的规则和删除日志语句

我通过取消注释project.properties中的行启用了混淆器。我反编译了我的APK以检查它是否有效。我可以看到我所有的方法、变量名和类名都已更改为a、b、c等,这很好。但是,我的Activity类尚未重命名。Log.d语句也没有按预期删除。我怎样才能让别人更难阅读反编译代码并删除日志语句? 最佳答案 与Android应用程序生命周期相关的各种方法不能重命名,因为:继承;父类(superclass)方法包含在Android库中,不能通过Proguard重命名。由于@Override注释,将onCreate()重命名为a()将因