android - java.lang.NoClassDefFoundError $$inlined

我目前正在使用 1.1.1 版的 Kotlin 开发 Android 应用程序

在我的代码中,为了读取多个 MutableListMutableMap,我使用了多个 forEach 结构。

不幸的是,我的应用程序因以下堆栈跟踪而崩溃:

java.lang.NoClassDefFoundError: com.package.fragment.ReminderAddFragment$onRetrieveBusinessObjects$$inlined$forEach$lambda$1 at com.package.fragment.ReminderAddFragment.onRetrieveBusinessObjects(ReminderAddFragment.kt:275) at com.smartnsoft.droid4me.app.Droid4mizer.onRetrieveBusinessObjects(Droid4mizer.java:552) at com.smartnsoft.droid4me.app.Droid4mizer.onRetrieveBusinessObjectsInternal(Droid4mizer.java:606) at com.smartnsoft.droid4me.app.Droid4mizer.access$000(Droid4mizer.java:46) at com.smartnsoft.droid4me.app.Droid4mizer$1.run(Droid4mizer.java:197) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)

这里是代码

tutorialCategories.forEach { (_, _, _, _, _, tutorials) ->
  tutorials.forEach { tutorial ->
    if (tutorial.id == simpleReminderFromExtra.tutorialId)
    {
      //...
      val mapOfreminders = mutableMapOf<Int, MutableList<Reminder>>()
      val reminders = ReminderServices.getReminderByTutorialId(simpleReminderFromExtra.tutorialId)

      reminders.forEach { reminder ->
        //...
      }

      mapOfreminders.forEach { _, finalReminders ->
        //...

        finalReminders.forEach { reminder ->
          //...
        }

        //...
      }
    }
  }
}

地点:

  • tutorialCategories 是一个 List ;
  • tutorials 是一个 List ;
  • reminders 是一个 List ;

代码的第 275 行是 mapOfreminders.forEach { _, finalReminders ->

在调试器中,我可以评估 mapOfreminders 变量,一切似乎都很好。

如果有人可以帮助解决这个问题!

最佳答案

阅读 Dan Lew 的 post几天前,我会提出一个建议,这可能是由于使用 Map.forEach { k, v -> } 造成的。 Java 8 中的方法,在 Android 运行时可能不可用。

您可以尝试使用另一个 forEach使用来自 Kotlin 标准库的单入口参数:

mapOfreminders.forEach { (_, finalReminders) -> }

这里的括号用于将入口参数解构为两个变量:被忽略的键和finalReminders值(value)。

关于android - java.lang.NoClassDefFoundError $$inlined$forEach$lambda$1 在 Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42869086/

相关文章:

function - 如何将空值分配给 Kotlin 中的函数类型变量?

java - 为什么在 Java 中实现返回 Unit 的 Kotlin 函数时必须返回 Unit.

kotlin - 如何将可变集合变成不可变集合

android - 如何在 kotlin 中使用 Android Support typedef 注

android - 这种类型有一个构造函数,必须在这里初始化 - Kotlin

android - kotlin 和 ArgumentCaptor - IllegalStateEx

android - Android 中的 AsyncTask 与 Kotlin

kotlin - 使用密封类强制编译错误

android - Unresolved reference DaggerApplicationCo

file - Kotlin 文件与类。有什么不同?