问题标签 [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 回答
2547 浏览

proguard - 由于 proguard 规则,生成签名 APK 时出错

在我将 Android Studio 更新到 3.3-rc01 并启用 R8 代码收缩后,生成签名的 APK 会出错。

它给出了以下proguard错误:

在 android studio 3.3-rc01 之前并且没有 R8 代码收缩它工作得非常好。

任何解决方法,或者我现在必须禁用 proguard 规则。

以下是我的 proguard-rules.pro 文件

0 投票
2 回答
11226 浏览

android - 在 Android Studio 中启用 R8 Shrinker 时超出 GC 开销限制

我正在使用 Android Studio 3.4 (Canary 9),当我构建我的应用程序时,它失败并出现以下错误

任务:app:transformClassesAndResourcesWithR8ForDebug

R8 是一个实验性功能。如果您遇到任何问题,请在https://issuetracker.google.com提交错误,使用“Shrinker (R8)”作为组件名称。您可以通过使用“android.enableR8=false”更新 gradle.properties 来禁用 R8。

AGPBI: {"kind":"warning","text":"缺少类:java.lang.instrument.ClassFileTransformer","sources":[{}],"tool":"D8"}

任务:app:transformClassesAndResourcesWithR8ForDebug 失败

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务“:app:transformClassesAndResourcesWithR8ForDebug”执行失败。

超出 GC 开销限制

当我通过放入 gradle.properties 禁用android.enableR8=falseR8。一切正常。

那么如何在不禁用 R8 Shrinker 的情况下修复此错误?因为我真的很想测试 R8 的功能。

0 投票
1 回答
499 浏览

android-studio - 推荐使用哪个 Android Studio 3.3 Build 变体?

昨天刚刚发布的 Android Studio 3.3 在Build Variants选项卡中有新项目,我无法确定推荐发布哪个项目。我需要这些信息才能使用正确的auth库变体创建 SHA1,但我在文档中的任何地方都找不到它。

额外信息:我已启用D8并已R8启用,因此是否仍需要在这些构建变体minifyEnabled中包含或保护位置

在此处输入图像描述

0 投票
2 回答
863 浏览

android - 启用 R8 会在 TextView 中使用 fontFamily 导致“android.view.InflateException Error inflating class TextView”

我正在尝试使用 R8 (AS 3.3) 缩小/混淆我的发布版本,但尝试膨胀 XML 文件时会崩溃,特别是在带有 fontFamily 的 TextView 上。删除 fontFamily 属性可解决此问题。

XML 文件:

这是堆栈跟踪:

我的字体位于一个单独的库模块中。

字体系列 xml 文件“res/font/gotham-bold.xml”在:core

实际字体“gotham_rnd_bold.otf”也在这个:core模块下的“res/font/

0 投票
1 回答
2435 浏览

android - 在 Android 上使用 R8 时,是否需要卸载现有的 Proguard?

使用 R8 时是否需要从 Gradle 中删除 Proguard 相关代码?

0 投票
3 回答
3654 浏览

android - 如何使用最新的 R8 Shrinker 版本

由于一个错误,我使用了 R8 Shrinker 的本地 jar 文件(由 R8 团队推荐),并将类路径添加到 top gradle.build

现在,无论对 Android Studio 进行任何更新,Gradle 构建仍然使用R8我之前使用过的旧版本V. 1.4.55

最近我看到他们发布了最新版本:V. 1.4.69 https ://r8.googlesource.com/r8/

所以我的问题是:如何配置 gradle 来告诉使用最新版本的 R8,因为我没有看到任何关于此的文档

0 投票
1 回答
328 浏览

java - pcap4j - Android Proguard/R8 配置

我在 Android 上使用 pcap4j,并且在 Debug Build 上一切正常。但是在发布版本中激活 Proguard/R8 时会抛出以下异常:

作为解决方法,如果我添加此规则,它就可以正常工作:

但是根据上述规则,所有类都由收缩器保留而不是优化

我的问题是如何编写更严格的规则来最大限度地缩小 pcap4j 并保持功能而不抛出异常

我也尝试过以下规则,但仍然崩溃:

因此,另一种解决方法是在这种情况下保留这两个类,一切都会正常:

但我要求一个“一般”规则,因为在这种情况下,该应用程序可能会使用上述其他类。

谢谢

0 投票
1 回答
1268 浏览

android - Android R8 ArrayIndexOutOfBoundsException

我最近尝试在项目中从使用 ProGuard 转向使用 R8。但是,这样做时,我在尝试构建时收到以下错误。使用 ProGuard 项目成功构建并运行。

我无法找到任何关于此的真实信息,或有关如何调试 R8 错误的一般信息,因此如果有人能对此有所了解,将不胜感激。

0 投票
0 回答
169 浏览

android - 引起:java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException

我试图在网上找到关于这个错误的想法,但我失败了。

有人可以帮忙吗?

0 投票
1 回答
1496 浏览

android - Android 新的 shriking 工具 R8 没有反映 APK 大小的任何变化

当我添加 R8 以缩小 android dex 大小时,它不起作用。我添加了以下行:

gradle.properties:

当试图分析我的代码时,我找不到我的 apk 大小有任何差异。我还缺少其他东西吗?

我是否应该添加任何 proguard 规则并通过添加以下行来启用 progaurd:

构建.gradle