Open ilkerkzgnC24 opened 1 month ago
Thank you for this information, our developer will look into this as soon as possible.
Additional information:
This problem start happening after we had libraries update in our application.
Check this public crash report: https://check24-factory-gmbh.sentry.io/share/issue/2b437c9a0853456fae9d514bbafc14b8/
This is how often is happening: this is not a "small" amount, considering our quality gate of crashes in the app
@FriedrichSchlee one of my colleges propose a workaround https://github.com/FinTecSystems/xs2a-android/pull/25 Can we give this a try?
Thank you, I will forward this to our developer, and they will tell you next week, if this fix can be done.
When will you do a release? If it is done latest tomorrow we can include the new version to our next CHECK24 App release, where we are aiming to have bugfixes: our goal is to have a stable app for the program https://tippspiel.check24.de/ul/em24 :)
Hello, we want to make the changes today, I will write here if its live
Hello, the changes are live now. Version 5.2.2
Please use the new version, and tell us if all is fixed then. Thank you
Hi, your new version is not compatible with our application.
We have this crash
E FATAL EXCEPTION: main (Ask Gemini)
Process: de.check24.android.webid.alpha, PID: 1519
java.lang.NoSuchMethodError: No static method viewModel(Lkotlin/reflect/KClass;Landroidx/lifecycle/ViewModelStoreOwner;Ljava/lang/String;Landroidx/lifecycle/ViewModelProvider$Factory;Landroidx/lifecycle/viewmodel/CreationExtras;Landroidx/compose/runtime/Composer;II)Landroidx/lifecycle/ViewModel; in class Landroidx/lifecycle/viewmodel/compose/ViewModelKt; or its super classes (declaration of 'androidx.lifecycle.viewmodel.compose.ViewModelKt' appears in /data/app/~~7oRNtcMZ7HPeykxKJX6p9g==/de.check24.android.webid.alpha-4_-8ObkrrI2XZAxy_BnFmw==/base.apk!classes19.dex)
at com.fintecsystems.xs2awizard.XS2AWizardKt.XS2AWizard(XS2AWizard.kt:230)
at com.fintecsystems.xs2awizard.wrappers.XS2AWizardFragment$onCreateView$1$1$1.invoke(XS2AWizardFragment.kt:106)
at com.fintecsystems.xs2awizard.wrappers.XS2AWizardFragment$onCreateView$1$1$1.invoke(XS2AWizardFragment.kt:87)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:248)
at com.fintecsystems.xs2awizard.wrappers.XS2AWizardFragment$onCreateView$1$1.invoke(XS2AWizardFragment.kt:85)
at com.fintecsystems.xs2awizard.wrappers.XS2AWizardFragment$onCreateView$1$1.invoke(XS2AWizardFragment.kt:84)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.ui.platform.ComposeView.Content(ComposeView.android.kt:428)
at androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke(ComposeView.android.kt:252)
at androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke(ComposeView.android.kt:251)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.ui.platform.CompositionLocalsKt.ProvideCommonCompositionLocals(CompositionLocals.kt:186)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$3.invoke(AndroidCompositionLocals.android.kt:119)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$3.invoke(AndroidCompositionLocals.android.kt:118)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt.ProvideAndroidCompositionLocals(AndroidCompositionLocals.android.kt:110)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke(Wrapper.android.kt:139)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke(Wrapper.android.kt:138)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:248)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Wrapper.android.kt:138)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Wrapper.android.kt:123)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
E at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:90) (Ask Gemini)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3302)
at androidx.compose.runtime.ComposerImpl.composeContent$runtime_release(Composer.kt:3235)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:725)
at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:1071)
at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:633)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:619)
at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.android.kt:123)
at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.android.kt:114)
at androidx.compose.ui.platform.AndroidComposeView.setOnViewTreeOwnersAvailable(AndroidComposeView.android.kt:1289)
at androidx.compose.ui.platform.WrappedComposition.setContent(Wrapper.android.kt:114)
at androidx.compose.ui.platform.WrappedComposition.onStateChanged(Wrapper.android.kt:164)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.kt:322)
at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.kt:258)
at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.kt:294)
at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.kt:143)
at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.kt:126)
at androidx.fragment.app.FragmentViewLifecycleOwner.handleLifecycleEvent(FragmentViewLifecycleOwner.java:100)
at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:708)
at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:3176)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3161)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3162)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3162)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1839)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Dependency resolution:
+--- com.fintecsystems:xs2awizard:5.2.2
| +--- androidx.core:core-ktx:1.13.1 -> 1.13.0 (*)
| +--- androidx.compose.material:material:1.6.7 -> 1.6.6 (*)
| +--- androidx.compose.animation:animation:1.6.7 -> 1.6.6 (*)
| +--- androidx.compose.ui:ui-tooling:1.6.7 -> 1.6.6 (*)
| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.1 -> 2.7.0 (*)
| +--- androidx.compose.runtime:runtime-livedata:1.6.7 -> 1.6.6 (*)
| +--- androidx.security:security-crypto:1.1.0-alpha06 (*)
| +--- androidx.biometric:biometric:1.2.0-alpha05 -> 1.1.0 (*)
| +--- io.coil-kt:coil-compose:2.2.0 -> 2.2.2
| | +--- io.coil-kt:coil-compose-base:2.2.2
| | | +--- io.coil-kt:coil-base:2.2.2
| | | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.7.0 (*)
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.8.0 (*)
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.9.23 (*)
| | | | +--- com.squareup.okhttp3:okhttp:4.10.0 -> 4.12.0 (*)
| | | | +--- com.squareup.okio:okio:3.2.0 -> 3.9.0 (*)
| | | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*)
| | | | +--- androidx.appcompat:appcompat-resources:1.4.2 -> 1.6.1 (*)
| | | | +--- androidx.collection:collection:1.2.0 -> 1.4.0 (*)
| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
| | | | \--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.6 (*)
| | | +--- androidx.compose.foundation:foundation:1.2.1 -> 1.6.6 (*)
| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
| | | \--- com.google.accompanist:accompanist-drawablepainter:0.25.1 -> 0.34.0 (*)
| | \--- io.coil-kt:coil:2.2.2
| | \--- io.coil-kt:coil-base:2.2.2 (*)
| +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0 -> 1.6.3 (*)
| +--- androidx.browser:browser:1.8.0 (*)
| \--- com.fintecsystems:xs2awizard_networking:1.2.0 -> 1.2.1
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.9.23 (*)
| +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
| +--- com.android.volley:volley:1.2.1
| \--- com.github.mervick:aes-everywhere-java:1.2.7
Notice on our previous messages the link: https://check24-factory-gmbh.sentry.io/share/issue/2b437c9a0853456fae9d514bbafc14b8/
ok, Thank you for the Feedback, our developer, will look into it, and try to find a fast solution
Hi @smatias1989 ππ»
Unfortunately I cannot reproduce your Issue, but this may be because of the simple integration of my Test-App π€
I tried a potential fix with #28, can you build the Branch of the PR locally and test if it fixes your problem?
Otherwise can you give me more insights on how you integrate this SDK?
For example do you use a Router? ViewBinding? What kind of Activity
are you using? Are you inflating the Wizard Fragment on its own or is it placed besides other components?
I would be very grateful if you could provide me with an Repository where this crash happens.
If #28 doesn't fix your problem and we don't find another solution, I will just revert the viewmodel dependency back to what it was on v5.2.1.
@maik-mursall I download your code and integrate it as a module in my dev environment. It works with some changes at:
At xs2awizard/build.gradle
1- remove version from id 'org.jetbrains.kotlin.plugin.serialization'
2- set kotlinCompilerExtensionVersion '1.5.11'
3- set compose_version = '1.6.6'
I was able to test the happy path with test bank BLZ 888888888 and the flow looks normal.
Can you adapt those version and prepare a release? That way we can use this week to test and approve the release on Friday 14th.
I really appreciate you make the changes fast after my report. The crash from this SDK is a critical issue on our app at the moment and your help is more than welcomed.
@maik-mursall additional information:
I can not guarantee I won't be asking you for more changes after you make a release.
Check24 contains several hundreds of modules and I was able to test this integration with the modules my team uses. I will be able to really check once you provide a release.
@smatias1989 new version 5.2.3 with the fixes is online, please look if all is working as wanted.
@FriedrichSchlee late this evening I will integrate and analyze the impact from the lib changes. Then I will have to ask for approval to our core team for approval.
@FriedrichSchlee @maik-mursall
By updating:
com.fintecsystems:xs2awizard
from 5.2.1 to 5.2.3com.fintecsystems:xs2awizard_networking
from 1.2.1 to 1.2.2I don't see your libs are changing our dependencies. But I see one dependency change that worries me:
+--- com.fintecsystems:xs2awizard:5.2.3
| +--- androidx.core:core-ktx:1.13.1 -> 1.13.0 (*)
| +--- androidx.compose.material:material:1.6.6 (*)
| +--- androidx.compose.animation:animation:1.6.6 (*)
| +--- androidx.compose.ui:ui-tooling:1.6.6 (*)
| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.1 -> 2.7.0 (*)
| +--- androidx.fragment:fragment-ktx:1.7.1 -> 1.6.2 (*)
| +--- androidx.compose.runtime:runtime-livedata:1.6.6 (*)
| +--- androidx.security:security-crypto:1.1.0-alpha06 (*)
| +--- androidx.biometric:biometric:1.2.0-alpha05 -> 1.1.0 (*)
| +--- io.coil-kt:coil-compose:2.2.0 -> 2.2.2
| | +--- io.coil-kt:coil-compose-base:2.2.2
| | | +--- io.coil-kt:coil-base:2.2.2
| | | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.7.0 (*)
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.8.0 (*)
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.9.23 (*)
| | | | +--- com.squareup.okhttp3:okhttp:4.10.0 -> 4.12.0 (*)
| | | | +--- com.squareup.okio:okio:3.2.0 -> 3.9.0 (*)
| | | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*)
| | | | +--- androidx.appcompat:appcompat-resources:1.4.2 -> 1.6.1 (*)
| | | | +--- androidx.collection:collection:1.2.0 -> 1.4.0 (*)
| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
| | | | \--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.6 (*)
| | | +--- androidx.compose.foundation:foundation:1.2.1 -> 1.6.6 (*)
| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
| | | \--- com.google.accompanist:accompanist-drawablepainter:0.25.1 -> 0.34.0 (*)
| | \--- io.coil-kt:coil:2.2.2
| | \--- io.coil-kt:coil-base:2.2.2 (*)
| +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0 -> 1.6.3 (*)
| +--- androidx.browser:browser:1.8.0 (*)
| \--- com.fintecsystems:xs2awizard_networking:1.2.2
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.9.23 (*)
| +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
| +--- com.android.volley:volley:1.2.1
| \--- com.github.mervick:aes-everywhere-java:1.2.7
Notice: | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.1 -> 2.7.0 (*)
If your sdk xs2awizard
uses a feature in lifecycle-viewmodel-compose:2.8.1
that is not present in 2.7.0
we will have a crash.
To be on the safe side, can you validate this?
Thanks
Hi @smatias1989,
Currently the only feature we use of lifecycle-viewmodel-compose
is retrieving the ViewModel.
This won't change for the foreseeable future as well.
Skimming over the release notes, I don't see any change made to the viewModel()
function between 2.7.x and 2.8.x.
Additionally looking at the raw source of ViewModel
, it seems that none of the functions have changed in their logic. Basically the only change is the usage of Kotlin-Classes instead of Java-Classes for their Generic types (For KMP).
And another notable change is in ViewModelProvider
because of Kotlin-Multiplatform, but the android-module seems to be still API-Compatible with v2.7.0.
You can find the usage @XS2AWizard:73.
Sounds great! Thanks for taking a look & all the effort.
Tomorrow, I will let you know as soon as this update is approved by our release team.
Have a nice evening.
Glad I could help. :)
I hope everything goes well tomorrow π€π» .
Thanks, you too. :)
Hi.
It looks like we found a crash regarding the libs versions: https://www.diffchecker.com/bCMA7MYn/ This time we are updating the lib: to 2.8.2
@maik-mursall our assumption failed π
In the future, I will be denied to update the lib if we have such an inconsistency. We need to be aligned on the dependencies we have for future updates. I hope that is doable.
what's left now is to wait this version goes to prod and it is adopted to validate the crash is fixed.
Hi @smatias1989, unlucky, then we'll just downgrade this dependency.
Is this the only dependency, that needs to be downgraded? You can check #29.
Nothing to do from your side. We are upgrading ours in the end
Ah I'm sorry I misread. ππ» Then I'll just close #29 if you're fine with that. :)
@smatias1989 is this: IllegalStateException: Size(2147483647 x 90) is out of range. Each dimension must be between 0 and 16777215. solved now? If yes, can you please close the issue then, Thank you
@FriedrichSchlee @maik-mursall
When we integrate your SDK with androidx.lifecycle:lifecycle-viewmodel-compose:2.8.1
we had this crash https://stackoverflow.com/a/78490417 on your SDK
Now that we updated our app with androidx.lifecycle:lifecycle-viewmodel-compose:2.8.1
to be compatible, we have this crash in other flows (check24 app is a huge app with several modules)
Can you make a release where you have the androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0
?
We would like to give it a try with this version to play on the safe side on this week release.
Thanks
Hi @smatias1989, Thatβs unfortunate to hear, but then weβll downgrade and prepare a release. :) Fingers crossed everything works then :)
Do you have an estimate when this will be merged?
Hi @maik-mursall in order to be able to use the change we need a release, correct?
Hi @smatias1989, we just published this Change under v5.2.4.
It will take up to a few hours until the artifact is fully available on MavenCentral.
It seems to be live now. :)
@smatias1989 any news here, do it now works as needed? Can we close this issue?
Hi @FriedrichSchlee, the app build with the new version was sent to google today and released not so long ago. Only 0,1% of the customers are using the new app & none of them are in the flow that uses this sdk. We need to wait for a greater adoption of this version & wish the issue does not show up anymore. FYI: we release very Monday & every Friday only 50% of our customers are using the new version. I think it is safe to make a conclusion on Monday.
Hi, as per our conversation, I am creating this issue here.
Seems like this issue happens inside
AnimatedAutoScrollContainer
. Also, I don't know how to reproduce the issue for now but let me know if you need more information from us.Stack trace: