问题标签 [jdk-desugaring]
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.
android - 应用程序安装选项“默认 APK”和“应用程序包中的 APK”在 Gradle 任务方面有什么区别
我想将我们的 Android 应用程序资产提取到一个Android 资产包中,因为我们超过了 150 MB AAB(Android 应用程序包)的大小限制。在进行测试时,我遵循了Android App Bundle Test Instructions并将我的 Android Studio Run/Debug 配置从 app bundle 更改为 APK。执行此更改后,我可以在运行时从资产包中找到资产,同时调试我的应用程序。
但是,后来在运行时,我意识到 JDK11 方法Optional.isEmpty
不再像以前使用 Run/Debug 配置Default APK时那样向后移植。这是它之前脱糖的方式。
经过一些 Google 研究后,我将Desugaring 库合并到我的项目中,这实际上解决了这个反向移植问题。但是,当继续时,我意识到作为依赖项拉入 Android 应用程序的库的某些部分正在使用以下方法。
根据this stackoverflow article,这是一个导致以下异常的已知问题。
这是我的 build.gradle 文件:
运行配置Default APK仅向后移植该Optional.isEmpty
方法并保持public static ConcurrentHashMap.KeySetView newKeySet()
不变(未对其执行脱糖操作)。这是我也想从 app bundle 为 APK实现的行为。
我显然可以重写被拉入 Android 应用程序的库中的这段代码,但问题仍然存在,Gradle 任务的区别是应用程序安装选项Default APK和APK from app bundle之间的区别。
我已经找到了这篇文章,但没有详细介绍。
此外,在构建应用程序时还会执行以下 Gradle 任务:
android - com.android.tools.r8.errors.b:跳转目标的不同堆栈高度:0!= 1
我在当前项目中使用 LocalDate。要在下面的 Android OI 中使用它,需要根据开发人员网站的建议使用 DeSugaring 但在此之后我面临另一个问题。
我更新了 Multidex 依赖项和类路径。但我仍然面临这个错误。请帮助我。
java - java.lang.NoClassDefFoundError:升级 Gradle 和 Android Gradle 插件时解析失败:Ljava/lang/Math8
我正在开发一个带有 Gradle 版本7.1.1
和 Android Gradle Plugin 版本的Android 应用程序7.0.0
。当我升级到 Gradle 版本7.2
和 Android Gradle Plugin 版本7.1.1
时,我收到以下错误。
错误来自此代码:
该build.gradle
文件设置为针对 JVM 1.8 并进行了脱糖。
desugar_jdk_libs
版本设置1.0.9
为。
为什么升级会导致此错误?