Did anybody meet exception [thread] on recompositi...
# compose
i
Did anybody meet exception [thread] on recomposition? Let me explain
Copy code
Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter
This parameter declared as default argument in function body and not passed in calling place. If i passing exactly the same value into funtion call app works well and not crashes on recomposition. Looks like default argument of composable function stores somewhere and GC (or somethig else) remove it when composable is recomposing, but ref stay the same and i get this error.
Copy code
2021-06-01 15:39:42.103 15883-15883/ru.rt.designsystem.android.compose.sample E/AndroidRuntime: FATAL EXCEPTION: main
    Process: ru.rt.designsystem.android.compose.sample, PID: 15883
    java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter interactionSource
        at androidx.compose.material.TextFieldImplKt.TextFieldImpl(Unknown Source:75)
        at androidx.compose.material.TextFieldKt.TextField(TextField.kt:289)
        at androidx.compose.material.TextFieldKt.TextField(TextField.kt:174)
        at ru.rt.designsystem.android.compose.components.input.InputKt.Input(Input.kt:54)
        at ru.rt.designsystem.android.compose.components.input.InputKt$Input$3.invoke(Unknown Source:48)
        at ru.rt.designsystem.android.compose.components.input.InputKt$Input$3.invoke(Unknown Source:10)
        at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:96)
        at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2139)
        at androidx.compose.runtime.ComposerImpl.skipToGroupEnd(Composer.kt:2423)
        at ru.rt.designsystem.android.compose.sample.AppActivity$onCreate$1$1$2$1.invoke(AppActivity.kt:55)
        at ru.rt.designsystem.android.compose.sample.AppActivity$onCreate$1$1$2$1.invoke(AppActivity.kt:54)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:116)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
        at ru.rt.designsystem.android.compose.sample.AppActivityKt.DayNightBackground(AppActivity.kt:180)
        at ru.rt.designsystem.android.compose.sample.AppActivityKt.access$DayNightBackground(AppActivity.kt:1)
        at ru.rt.designsystem.android.compose.sample.AppActivityKt$DayNightBackground$1.invoke(Unknown Source:6)
        at ru.rt.designsystem.android.compose.sample.AppActivityKt$DayNightBackground$1.invoke(Unknown Source:10)
        at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:96)
        at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2139)
        at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2402)
        at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:2554)
        at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:2525)
        at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:555)
        at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:733)
        at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:102)
        at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:443)
        at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:415)
        at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:34)
        at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:109)
        at androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:41)
        at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:964)
        at android.view.Choreographer.doCallbacks(Choreographer.java:790)
        at android.view.Choreographer.doFrame(Choreographer.java:721)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
2021
when i pass this value directly into fun all works good
On screenshot above also other parameters that i pass directly instead of defaults, because with using default parameters i get same crash on recomposition
l
This is a known issue, should be fixed in the next release
πŸ”₯ 1
i
Maybe you know when next release should be released? :)