【发布时间】:2017-08-09 16:39:06
【问题描述】:
我目前正在使用 1.1.1 版的 Kotlin 开发 Android 应用程序
在我的代码中,为了读取多个MutableList 和MutableMap,我使用了多个forEach 结构。
不幸的是,我的应用程序因以下堆栈跟踪而崩溃:
java.lang.NoClassDefFoundError: com.package.fragment.ReminderAddFragment$onRetrieveBusinessObjects$$inlined$forEach$lambda$1 在 com.package.fragment.ReminderAddFragment.onRetrieveBusinessObjects(ReminderAddFragment.kt:275) 在 com.smartnsoft.droid4me.app.Droid4mizer.onRetrieveBusinessObjects(Droid4mizer.java:552) 在 com.smartnsoft.droid4me.app.Droid4mizer.onRetrieveBusinessObjectsInternal(Droid4mizer.java:606) 在 com.smartnsoft.droid4me.app.Droid4mizer.access$000(Droid4mizer.java:46) 在 com.smartnsoft.droid4me.app.Droid4mizer$1.run(Droid4mizer.java:197) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423) 在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 在 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 变量,一切似乎都很好。
如果有人可以帮助解决这个问题!
【问题讨论】:
-
您能否具体说明一下,您使用的是什么版本的 Kotlin?
-
我使用的是 Kotlin 1.1.1。我已经编辑了我的帖子。
-
您能否发布更多上下文,例如您的包含和变量定义?你能在崩溃前以某种方式获取代码中的版本吗?如果你得到一个 no class-def 错误,你要么在分发你的二进制文件而没有所需的依赖项,要么正在使用与你构建时不同的版本运行。