问题标签 [android-d8]

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 投票
0 回答
1485 浏览

android - Code shrinker R8 在启动时使我的 Xamarin.Android 应用程序崩溃,并且无法获取提供程序 com.google.firebase.provider.FirebaseInitProvider

我有一个 Xamarin.Android 应用程序,我最近切换到使用 R8 代码收缩器。不幸的是,我的应用程序在启动时崩溃并出现以下错误:

我找到了这篇文章,它与 MultiDex 和原生 android 更相关,并没有帮助。

然后我发现了这篇带有文件定义的Xamarin.Android 特定文章。multiplex.keep我已添加文件multiplex.keep并将构建操作设置为MultiDexMainDexList

结果是同样的崩溃,所以我不得不禁用代码收缩器并暂时使用它。

请告知,我如何启用 R8 代码收缩器(我确实想要更快的构建和更小的包)而不是在启动时使应用程序崩溃?

0 投票
1 回答
810 浏览

xamarin.forms - r8 shrinker Java.Lang.NoSuchMethodError Message=xamarin 表单中没有非静态方法

我正在使用 d8+r8+Multi-Dex 来部署我的 Xamarin Forms 应用程序。但是,启用 r8 时,我遇到了一些奇怪的异常。我检查了调试模式,我收到了这个奇怪的错误。我还配置了 proguard 文件来免除一些文件,但它没有帮助。 Java.Lang.NoSuchMethodError

保护文件

0 投票
1 回答
325 浏览

android - DX被D8取代后,为什么Android还保留DX?

为什么 Android 仍将 DX 保留在其更新的替代品 D8 上?

结果:

这是我使用的程序(文件Primes.java):

以下是我将其编译为.dex文件的方法:

结果:

然后我清理地址,注册名称和评论以便能够比较:

那时它们几乎相同,但不完全一样:

0 投票
1 回答
144 浏览

android - 如何确定用于创建 apk 的 dx/d8 版本?

如何确定在创建我的 apk 时使用了哪个 dex 编译器(dx/d8) 版本+标志?

然后我得到以下详细信息:

所以这意味着cmdline-tools/build-tools/28.0.0/dx被使用了???

0 投票
1 回答
316 浏览

jar - r8 不创建输出 dex 文件

我正在尝试使用r8但没有取得多大成功:

但是d8它可以完美运行(即使没有--lib android.jarand --lib recycleview.jar):

编辑

尝试创建 fastadapter proguard keep 规则失败:

这有点奇怪,因为 targetSdkVersion 实际上确实存在:

0 投票
1 回答
68 浏览

flutter - D8:程序类型已经存在:com.google.protobuf.AbstractMessageLite$Builder$LimitedInputStream

我在我的颤振项目中遇到以下错误,并且不知道如何解决它错误:

构建.gradle

我已经尝试升级所有内容。也尝试通过现有的可用相关答案解决它,但对我没有任何帮助。还检查了 protobuf 没有两个类。尝试删除构建,.gradle 文件

0 投票
1 回答
121 浏览

runtimeexception - d8 dex 编译因脱糖而失败

我无法让 d8 dex 编译器编译我的 jar 包:

我试图阅读有关脱糖问题的信息,但没有走得太远——这个罐子有什么问题?

0 投票
1 回答
84 浏览

android - 如何将 Multidex 支持添加到 Android d8.bat 命令行

我正在使用 Delphi 的 Androids d8 编译器,我需要启用 MultiDex。在 Android Studio 中,将以下内容添加到 Gradle 文件中:

defaultConfig { minSdkVersion 14 targetSdkVersion 22 multiDexEnabled true }

但是因为我使用的是 Delphi,所以我不能那样做。如何打开对命令行工具 d8.bat 的 MultiDex 支持?

0 投票
0 回答
17 浏览

android - 无法使用 d8 进行 dex

我试图运行 D8 来 dex 我的应用程序,而我遇到了这个错误错误是

com.android.tools.r8.-$$Lambda$BaseCompilerCommand$Builder$2aB0nZkbJUiBrRZnNpn_FVzp9O0

0 投票
0 回答
86 浏览

android - 为 B4A 生成脱糖库

我正在为 B4A 框架制作一个 Android 库。情况
如下:

  • 我的 Android 库使用 Java8 功能(例如 Lambda)
  • B4A (Basic4Android) 使用 legacy dex(而不是d8)来制作应用程序,因此与 java8 不兼容,并且不会自行脱糖。

在 B4A 中使用我的aar文件会导致以下错误:

官方论坛的解决方案是使用Bazel 的 desugar tool对库的 Jar 进行脱糖,但似乎它导致Expected a load for ...了不同的错误,而不是我的问题。

我的问题:
对于这些情况,是否可以使用 Android Studio 生成脱糖aar库(与 Java7 兼容且无 lambda)?

我知道d8会脱糖,但它的输出是.dex文件而不是.jar文件。

我尝试过的:
Android 的Using Java 8 Feature中所说的解决方案没有帮助,因为它不会产生兼容的 jar 并且错误仍然存​​在。