问题标签 [android-proguard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8009 浏览

android - Android 签名的 APK 生成:未找到引用的类/方法的 Proguard 异常

我需要为 Play 商店生成一个签名的 APK。(使用 Android Studio )如果我在没有 proguard 的情况下这样做( build.gradle 中的 minifyEnabled false )一切正常!

如果使用默认参数激活它:

我收到这些警告

并且构建过程停止并显示此消息:

经过几次尝试后,我找到了一种在“proguard-rules.pro”中使用此行删除警告的方法:

但是构建过程仍然出错!有人有解决这个问题的方法吗?

谢谢!戴维德

0 投票
2 回答
5121 浏览

android - 如何使 org.apache.http.legacy 与 ProGuard(天蓝色移动服务)一起使用?

问题:

我正在使用依赖于 androidhttpclient 的 android 移动服务。

引用 org.apache.http.legacy 解决了所有问题,应用程序运行良好。但是,随着 proguard 的开启,我不断遇到问题。

问题在两种情况下出现。如果我保持选中导出复选框(在 java 构建路径中),我会得到一个“存根!” 符合预期的异常(请参阅下面的讨论)(请参阅我正在谈论的复选框的屏幕截图)

在此处输入图像描述

类型的运行时崩溃:“存根!”:

但是,如果我不选中该复选框(如建议的那样 - 请参阅下面的讨论),我会得到 AbstractMethodError 异常。

使用的 proguard 配置:

有没有其他人遇到过这个问题并弄清楚了?

0 投票
1 回答
3761 浏览

android - 如何准确解码 ProGuard 的混淆代码?

我在我的应用程序中使用 ProGuard,问题是当用户向我的控制台报告一些问题并且由于“未知来源”而我无法准确解码它时。

这是堆栈跟踪的示例:

然后我使用这段代码来解码它:

这是输出:

它只在发生错误时显示片段的名称,但我还需要确切的行和方法。

0 投票
1 回答
230 浏览

android - 仅在使用 Proguard 的发布模式下内存泄漏

我有一个在调试模式下运行良好的 Android 应用程序,但在发布模式下存在某种内存泄漏。基本上,它真的很慢,并且在 logcat 中重复出现以下行:

如果我不混淆,不缩小并且不优化proguard,那么发布就可以了。如果我做其中之一,我有这个错误。我使用以下几行:

我正在使用多个使用一些本机(即 JNI)代码的外部库,但我不知道可能出了什么问题。

  • 我如何确定问题来自哪里?
  • 我可以告诉 proguard 只优化/缩小/混淆一个包,以便我可以尝试隔离问题吗?
0 投票
3 回答
11052 浏览

android - Android Studio - Gradle 增量构建

在过去的几天里,我一直在努力改善我们项目的构建时间,但没有成功。我不介意必须等待 1 分钟 40 秒才能进行干净构建,但是如果我在单个 java 文件中插入一行,我将获得与干净构建相同的构建时间。我一定是做错了什么,但我根本找不到任何文档或堆栈溢出问题来指出我正确的方向。我设法收集了一堆我将集中在这里的信息,希望对这个主题有更好理解的人解释我为什么会得到这些糟糕的构建时间。

它是这样的:

  • 我知道我的 build.gradle 文件中的这个选项是我所寻求的。

    光荣的增量构建。但是,这显然对我不起作用,因为我的项目使用 multidex 功能与 Lollipop 之前的 android 版本兼容。

  • 前卫救援!使用 Proguard,我可以缩小我的可执行文件并删除所有未使用的方法。我在使用 proguard minify 时遇到了一些错误,但能够正确设置并使其正常工作。伟大的!每次构建需要大约 20 秒的 Dex 生成。不幸的是,没有什么是免费的,proguard gradle 任务大约需要 2 分 50 秒才能运行。甚至比我最初的情况还要糟糕。

这个问题有解决方案吗?

0 投票
1 回答
1416 浏览

java - Proguard 问题:尝试在空对象引用上调用虚拟方法 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)'

我的应用程序有两种构建类型:debugrelease. 这是配置:

调试编译并运行没有任何问题,但是在发布时(我有minifyEnabled true),在应用程序启动后,我得到以下异常:

这意味着 有一些麻烦ProGuard。我玩了很多proguard-rules.txt文件,但仍然无法正常工作。这里是:

堆栈跟踪表明方法存在一些问题setupDrawer(),但我不知道出了什么问题。这是那个方法:

任何想法为什么会发生这个问题以及如何解决这个问题?

0 投票
0 回答
425 浏览

android - 生成签名APK时的Android Proguard ZipException

我的项目结构如下:

-app/(主模块)

-module1/(应用程序的依赖项/)

-module2/(对 module1/ 的依赖)

在将 minifyenabled 设置为 true 并生成签名 APK 后,我收到以下错误:

错误:任务“:app:dexRelease”执行失败。

java.util.zip.ZipException: error in opening zip file work connection timeout.) 重新下载依赖和同步项目(需要网络) 重新下载依赖和同步项目(需要网络)

任何没有 minifyenabled 的正常调试或发布版本都可以正常工作。我已经尝试过删除依赖项并重新添加以及重新同步,但没有喘息的机会。关于为什么会发生这种情况的任何想法?我正在使用 android studio 和 gradle。

0 投票
0 回答
264 浏览

java - 在库类 java.util.ArrayList 中找不到引用的方法“void sort(java.util.Comparator)”

我已经为 pro-guard 配置了我的项目,该项目在很长一段时间内都可以正常工作,现在突然间我在生产中遇到了这个错误。

我正在我的班级中创建一个比较器,如下所示:

我尝试在 pro-guard 中设置一个标志以忽略所有涉及的类(MPSearch、Java.Utils。**)

但是后来我遇到了无法诊断的崩溃。

0 投票
2 回答
2520 浏览

android - Proguard 使用适用于 Android 的 AWS 开发工具包出现错误

在我的 Android 应用程序中,我使用了一些 Amazon 的库:

  • aws-android-sdk-cognito-2.2.2.jar ,
  • aws-android-sdk-core-2.2.2.jar ,
  • aws-android-sdk-ddb-2.2.2.jar ,
  • aws-android-sdk-ddb-mapper-2.2.2.jar ,
  • aws-android-sdk-sns-2.2.2.jar ,
  • aws-android-sdk-s3-2.2.2.jar

当我在启用 Proguard 的情况下导出 apk 文件并清空文件 proguard-project.txt 时,出现以下错误:

请帮助我在这种情况下如何配置 Proguard!

编辑:我使用 Eclipse。

0 投票
1 回答
714 浏览

android - 防止 Proguard 删除未使用的属性

我有一堂课:

以及以下proguard规则:

但是,当我在这里组装发布版本时,输出是:

(来自反编译的 APK)

请注意,只有 Id 字段已设置,其他三个尚未设置(即使它们的构造函数存在)。

其他三个字段未在代码中使用,但 GreenDAO 使用反射使用。

如何防止其他三个字段被删除?

我试过了

连同上面的规则,但它不起作用。