rol*_*ndl 33 lambda android kotlin
我目前正在使用版本1.1.1中的Kotlin开发Android应用程序
在我的代码中,我有几种forEach结构的叠加,以便阅读几个MutableList和MutableMap.
不幸的是,我的应用程序崩溃了以下堆栈跟踪:
java.lang.NoClassDefFoundError:com.package.fragment.ReminderAddFragment $ onRetrieveBusinessObjects $$ in.sach.package.fragment.ReminderAddFragment.onRetrieveBusinessObjects(ReminderAddFragment.kt:275)in com.smartnsoft.droid4me.app.Droid4mizer inlined $ forEach $ lambda $ 1 .onRetrieveBusinessObjects(Droid4mizer.java:552)位于com.smartnsoft.droid4me.app.Droid4mizer.onRetrieveBusinessObjectsInternal(Droid4mizer.java:606)的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)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 ->
//...
}
//...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
地点:
tutorialCategories是一个List;tutorials是一个List;reminders是一个List;代码的第275行是mapOfreminders.forEach { _, finalReminders ->.
在调试器中,我可以评估mapOfreminders变量,一切似乎都没问题.
如果有人可以帮助解决这个问题!
Ily*_*lya 73
在几天前阅读Dan Lew的帖子之后,我将提出一个建议,这可能是由于使用Map.forEach { k, v -> }Java 8中的方法引起的,这可能在Android运行时中不可用.
您可以尝试使用来自Kotlin标准库的单个入口参数来使用另一个forEach:
mapOfreminders.forEach { (_, finalReminders) -> }
Run Code Online (Sandbox Code Playgroud)
这里的括号用于将输入参数解构为两个变量:忽略键和finalReminders值.
zha*_*ang 12
我java.lang.NoClassDefFoundError在Android 6.0和6.0.1上遇到过这个问题
Map.forEach {key ,value -> }
Run Code Online (Sandbox Code Playgroud)
这个叫java 8 api.
然后,我通过在参数中添加括号来解决这个问题:
Map.forEach {(key ,value) -> }
Run Code Online (Sandbox Code Playgroud)
这叫kotlin api
| 归档时间: |
|
| 查看次数: |
3466 次 |
| 最近记录: |