gpt4 book ai didi

android - 具有 kotlin 库依赖性的 Flutter 应用程序中的 NoClassDefFoundError

转载 作者:行者123 更新时间:2023-11-30 04:53:57 25 4
gpt4 key购买 nike

在我的 flutter 应用程序中,我有一个 kotlin 库依赖项。在 android 文件夹的主要 Activity 中,我正在调用库的函数之一,其中有一个 lambda。

例如:a.b.c.Util.someFunction$1

我正在从 MainActivity 调用“someFunction”,但它崩溃了,因为它说它找不到“$1”类。我知道 kotlin 为每个 lambda 创建了一个类并将其命名为这样(带有 $ 符号)。

有趣的是,该应用程序在我的 android 7 设备上运行,但它在 android 4 和 5 设备上崩溃。

我最好的猜测是我正在为 kotlin 编译器使用版本 8 的源代码兼容性,它生成 java 8 兼容的字节码,因此较低的设备不支持它,但即使将它降级到版本 6 也没有解决问题

我已经为 build.gradle 添加了 multidex 支持并扩展了 FlutterApplication 并在我的 Application 类中调用了 Multidex.install(this) 并替换了 list 中的 Application 类

最佳答案

我找到了问题的根源。我在 kotlin 代码中使用了一些 jdk8 函数,但旧设备不支持它,因为它们是 jvm 6 或 7。

例如Collection.removeIf或Map.forEach函数在jdk8中定义

我设法通过将 intellij idea 的语言级别降低到 6 来查找和替换所有 jdk8 函数调用来解决这个问题。但它只会强制你只使用 6 以下的语言特性而不是函数。我想现在我必须找到heystack 中的所有 jdk8 函数!

关于android - 具有 kotlin 库依赖性的 Flutter 应用程序中的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59542358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com