问题标签 [android-r8]

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 回答
1283 浏览

android - 如何在编译期间调试 R8?

在编译 Android 项目期间有什么方法可以调试 R8 吗?

我有一个非常奇怪的错误,随便修复也无济于事

0 投票
0 回答
41 浏览

android - Android 和 Akka 2.5 集成

我一直在尝试在 Android 应用程序中使用 Akka 2.5,但没有成功。我遇到了很多问题:

  • 使用 Android 标准库时的第一次失败IndexOutOfBound是在 R8 上引用Akka方法时com.android.tools.r8.graph.OffsetToObjectMapping
  • 使用Retrolambda时的第二个失败是应用程序在尝试ActorSystem用 a实例化ClassNotFoundException时崩溃MainActivity

有没有人成功地将 Akka 2.5 与 Android 一起使用?如果是,我该如何在 Android 上完全支持 Akka 2.5?

0 投票
0 回答
78 浏览

android - Android R8 Code Shrinker 和 AWS CodePipeLine:java.lang.StackOverflowError(无错误消息)

我请一位同事启用带有 Github 存储库的 AWS CodePipeLine,以检查合并到develop分支的拉取请求。

这些是 AWS 在构建阶段运行的命令,它们定义在一个名为buildspecs.yml

执行./gradlew build命令后,AWS CodwPipeline 会抛出以下消息:

据我了解,R8 在压缩代码时内存不足,问题是,我不知道如何在 AWS 端解决这个问题(如果是从那端),或者我是否需要定义一些设置一个文件,例如build.gradle为了让 AWS 知道为 R8 分配了多少内存,考虑到内存是问题所在。

这是来自 Android 项目方面还是来自 AWS?还是缺少任何配置?

0 投票
2 回答
7257 浏览

android - Proguard和R8有什么区别?

新版本的 Android Studio (3.4) 刚刚问世,它默认支持 R8 而不是 Proguard。有人可以解释两者之间的主要区别以及使用 R8 的任何明显好处吗?

0 投票
0 回答
279 浏览

android - 重复的 jar 条目

我试图混淆我的代码并进行发布构建,但是当我这样做时,我得到了一个 Duplicate Jar 条目,其中 proguard 或程序类型在使用 R8 时已经存在。它抱怨的类我通过在它的类路径中指定类来覆盖,这样我就可以覆盖一个库类。

假设库有一个类 com.example.A。我将类路径 com.example 放在我的项目中,并有一个名为 A 的类具有相同的签名,但稍微改变了性能日志记录的行为,我认为这是一个很好的补充。现在代码在创建发布版本时不会编译,但它在覆盖库类的调试版本上按预期工作。

任何人都经历过这种情况并对我如何保持我的覆盖课程有建议?所有在线文档都指定摆脱有问题的重复项,而不是使用某种强制解决路径。

0 投票
1 回答
4528 浏览

android - proguard-rules.pro 似乎不适用于 R8

我今天早些时候将我的 Android Studio 升级到了 3.4,并且我第一次使用了默认的压缩器 R8。proguard-project.txt我将一个库项目的内容复制到它的proguard-rules.pro. proguard-project.txt这个项目完美地工作,生成一个供其他应用程序项目使用的 aar 文件。

文件proguard-rules.pro似乎没有被使用。该项目具有以下内容build.gradle

proguard-rules.pro具有以下内容:

公共方法的名称根本不保留: 在此处输入图像描述

任何人都可以提供有关如何解决此问题的提示吗?

0 投票
1 回答
9291 浏览

android - 更新 Android Studio 后是否在现有项目上启用了 r8?

我更新了 Android Studio,如果我是正确的,更新默认包含 R8 到我的项目中。问题是 r8 仅在默认情况下仅在新项目上激活,还是更新包括对我已经创建的项目的更改?如果没有,我该如何利用它。

0 投票
2 回答
1780 浏览

android - 使用代码收缩器 R8 使用 Android Studio 3.4 构建时出现 OutofMemory 问题

我正在使用最新的稳定版 Android Studio - 3.4。当我构建调试 apk(没有 proguard)时,它工作正常。但是在获取发布版本时问题就来了。它默认使用最新的 R8 收缩器。

它给了我一个内存不足的错误。我尝试更改 gradle.properties 文件中的值,如下所示,这发生在执行transformClassesAndResourcesWithR8ForRelease任务时。

它仍然给我同样的错误。

最后我尝试通过在 gradle.properties 文件中使用这一行来禁用 R8,

但仍然在构建任务中,我可以看到它正在执行这个任务transformClassesAndResourcesWithR8ForRelease并给我同样的错误。

这些是错误日志

那么以前有人遇到过这个问题吗?有没有人想出解决办法?任何建议将不胜感激。

0 投票
2 回答
497 浏览

android - Gradle 5.1.1 更新打破了我在 Android 中的 proguard 规则

我将我的 gradle 版本更新到 5.1.1,突然它打破了我的一些 proguard 规则(应用程序崩溃)。我使用的这个库就是一个例子: https ://github.com/LeonardoCardoso/Android-Link-Preview

我应用了proguard规则:

之前(v4.10.1 及更低版本)可以工作,但现在它坏了,它给出了这个错误:

我的问题是,您在将版本更新到 5.1.1 时是否添加了任何特殊规则?我知道从这个版本的 Android Studio (3.4) 开始,它也带有 R8。

0 投票
2 回答
10570 浏览

android - 使用 R8 构建 Android 失败

在 android studio 3.4-RC3 上启用 R8 时构建失败并出现以下错误。构建成功,如果android.enableR8=false

编译期间遇到未定义的值。这通常是由无效的 dex 输入引起的,该输入使用未在导致使用的所有控制流路径上定义的寄存器。

这个未定义的值是什么,我该如何解决这个错误?