Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Java.lang.NoClassDefFoundError $$ inlined $ forEach $ lambda $ 1 en Kotlin

Actualmente estoy trabajando en una aplicación de Android con Kotlin en la versión 1.1.1

En mi código, tengo la imbricación de varias estructuras forEach para leer varios MutableList y MutableMap .

Lamentablemente, mi aplicación se bloquea con el stacktrace siguiente:

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

Aquí el código

 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 -> //... } //... } } } } 

Dónde :

  • tutorialCategories es una List ;
  • tutorials es una List ;
  • reminders es una List ;

La línea 275 del código es mapOfreminders.forEach { _, finalReminders -> .

En el depurador, puedo evaluar la variable mapOfreminders y todo parece estar bien.

¡Si alguien puede ayudar a resolver este problema!

  • No se puede usar forEach y lambda en android min sdk versión menos de 24
  • ¿Cómo puedo suprimir nuevo anónimo runnable () se puede sustituir por lambda
  • Android Jack: Lambda que viene del archivo jar necesita sus interfaces en el classpath para ser compilado, las interfaces desconocidas son java.util.function.Consumer
  • Unidad Método de prueba que no contiene lambda expresión Android Studio
  • Android Studio: lambda no funciona
  • ¿Los lambdas en el compilador de lazo de Android N tienen referencias a la clase de inclusión?
  • Las expresiones Lambda se bloquean con IncompatibleClassChangeError en Android cuando se usa jack
  • Androide retrolambda, la sentencia lambda puede ser reemplazada por la expresión lambda
  • One Solution collect form web for “Java.lang.NoClassDefFoundError $$ inlined $ forEach $ lambda $ 1 en Kotlin”

    Después de leer el post de Dan Lew hace un par de días, haré una sugerencia de que esto puede ser causado usando el Map.forEach { k, v -> } de Java 8, que puede no estar disponible en el tiempo de ejecución de Android.

    Puede intentar usar otro forEach con el parámetro de entrada única que viene de la biblioteca estándar de Kotlin:

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

    Aquí los paréntesis se utilizan para desestructurar el parámetro de entrada en dos variables: clave ignorada y valor finalReminders .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.