我目前正在使用 1.1.1 版的 Kotlin 开发 Android 应用程序
在我的代码中,为了读取多个 MutableList
和 MutableMap
,我使用了多个 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/