Answered

Android SDK crashes when opening chat due to animation API change in Compose 1.5

  • 21 August 2023
  • 23 replies
  • 1055 views

Userlevel 1
java.lang.ClassCastException: androidx.compose.animation.AnimatedContentTransitionScopeImpl cannot be cast to androidx.compose.animation.AnimatedContentScope
at com.google.accompanist.navigation.animation.AnimatedNavHostKt$AnimatedNavHost$7$1.invoke(AnimatedNavHost.kt:198)

This is due to Compose animation change in Compose 1.5

Instead of using `AnimatedContentScope` Intercom needs to update and use `AnimatedContentTransitionScope`

icon

Best answer by Racheal 7 September 2023, 18:41

View original

23 replies

Badge

Same issue here. Intercom SDK 15.1.6, androidx.navigation:navigation-compose:2.7.0.

Same here. Intercom crashes immediately upon opening.

androidx.compose:compose-bom:2023.06.01
io.intercom.android:intercom-sdk:15.1.6

Also kind of weird this started to update without us updating an dependencies or versions. Remote update?

yes same issue i got  i use compose version 1.5.0

intercom version 15.1.6

@Intercom  please help me out

Badge

@Brian Branca Anyone on top of this and able to give an estimate on when we can have a fix?

Same issue with 

io.intercom.android:intercom-sdk-base:15.1.6
Badge

@Racheal I see you have been active in similar topics on older versions of Intercom SDK for Android, so maybe you’re the right person to follow up on this?

Hello, I just found out how to solve the problem for me, if I upgrade these libs

implementation 'androidx.navigation:navigation-fragment-ktx:2.6.0'
implementation "androidx.navigation:navigation-ui-ktx:2.6.0" 

in version 2.7.0 the bug appears, so I had to set them back to 2.6.0

Badge

That is not a solution, as it forces you back on an older version of AndroidX Navigation. The intercom SDK should be updated to not block upgrades to the newer version of Navigation.

Agreed, downgrading an important dependency like that is not a reasonable “answer”

Please provide a real fix, we cannot simply downgrade stuff and wait. You need to update intercom to compose 1.5 and release a new intercom SDK. 

Migration guide and deprecation notice: https://google.github.io/accompanist/navigation-animation/

This is unacceptable. You had a release yesterday and you didn’t fix the crash!!!

Just found this issue which is 16 days old now with no response from intercom, but it actually works if you downgrade intercom to 15.0.0.  

Userlevel 1

@Intercom Please do not tag this as Solved.
The solution you pinned is not a real solution.

Test Android SDK against lates Compose bom dependency:
https://developer.android.com/jetpack/compose/bom/bom-mapping

If you provide UI using compose then please support compose releases,
as otherwise you are breaking updates for all who depend on Intercom SDK.

Userlevel 1

@Oseas If you are testing using Intercom sample, then that sample should be migrated to use compose bom, so such things can be noticed in time

Userlevel 2
Badge +3

Hi @iliav and everyone else thats been contributing to the great discussion on this! I’m Cam, one of the Intercom Support Engineers. 

Just wanted to let you all know that we’ve got an Issue Report open with our Product Engineering team on this, so it is certainly something the team has been/is working to address. The teams most recent update indicates this may be fixed in an upcoming Android SDK update - I’ve reached out to confirm this with them and will let you know as soon as I hear back 👍

Badge

Hi @iliav and everyone else thats been contributing to the great discussion on this! I’m Cam, one of the Intercom Support Engineers. 

Just wanted to let you all know that we’ve got an Issue Report open with our Product Engineering team on this, so it is certainly something the team has been/is working to address. The teams most recent update indicates this may be fixed in an upcoming Android SDK update - I’ve reached out to confirm this with them and will let you know as soon as I hear back 👍

Thanks, Cam! Appreciate the follow-up and hopefully an imminent fix 🤞

Userlevel 1
Badge

If you provide UI using compose then please support compose releases,
as otherwise you are breaking updates for all who depend on Intercom SDK.

@cameron.gumley It would be really amazing to see Intercom support compose BOMs as they come out.
Because the 15.1.6 Intercom version uses mostly 1.4.2 compose libraries, we’re forced to stay on the 2023.04.01 Compose BOM 5 months after it’s released.

Another thing that would be great to see - is more consistency with the versioning of compose libraries you use (this is something I’ve raised previously).
We tried updating to Intercom 15.2.0 recently, but it now depends on Lottie 6.1.0, which uses the 2023.06.00 BOM, causing compose libraries to update to 1.4.3, which has breaking changes compared to the 1.4.2 versions.

After having a look at your dependencies here, I noticed that the compose foundations and ui libraries you use are version 1.4.2, but you’re also depending on androidx.compose.material 1.4.3. This might cause unexpected behaviour and crashes - according to the official BOM to library mapping, libraries should either all be 1.4.2 (2023.04.01 BOM) or 1.4.3 (2023.05.00 BOM).

Userlevel 4
Badge +5

Hey all 👋 

 

Our new Android SDK version 15.2.1 that supports Jetpack Compose 1.5 is released now. 🎉 After updating your package you shouldn’t run into anymore issues but let us know if you are seeing otherwise!

 

Userlevel 1
Badge

Hey all 👋 

 

Our new Android SDK version 15.2.1 that supports Jetpack Compose 1.5 is released now. 🎉 After updating your package you shouldn’t run into anymore issues but let us know if you are seeing otherwise!

 

@Racheal Thank you for the great news!

 

Just in case - the accompanist placeholder and systemuicontroller libraries you’re using are version 0.30.1, but according to the Accompanist docs you should be using 0.32.0 to be sure it’s fully compatible.

issue is not fixed, I’m using same dependencies with your sample and have the crash: 
java.lang.IncompatibleClassChangeError: Found interface androidx.compose.ui.graphics.drawscope.DrawScope, but class was expected (declaration of 'androidx.compose.ui.graphics.drawscope.DrawScope'

Userlevel 2
Badge +3

Hey all 👋 

 

Our new Android SDK version 15.2.1 that supports Jetpack Compose 1.5 is released now. 🎉 After updating your package you shouldn’t run into anymore issues but let us know if you are seeing otherwise!

 

@Racheal Thank you for the great news!

 

Just in case - the accompanist placeholder and systemuicontroller libraries you’re using are version 0.30.1, but according to the Accompanist docs you should be using 0.32.0 to be sure it’s fully compatible.

@Roman Kamyshnikov -- Our Product Engineering team have let me know they are working on getting these libraries updated. There’s no firm ETA on what this work will be finalised but should be relatively soon, so you’ll likely see this in an upcoming release 👍

Userlevel 2
Badge +3

issue is not fixed, I’m using same dependencies with your sample and have the crash: 
java.lang.IncompatibleClassChangeError: Found interface androidx.compose.ui.graphics.drawscope.DrawScope, but class was expected (declaration of 'androidx.compose.ui.graphics.drawscope.DrawScope'

@mishmax -- I believe my teammate Aykut reached out to you on this but wanted to get back to you here for completeness. Our team released a few additional ‘fixes’ in relation to this from Android SDK v.15.2.2 onwards. After updating the SDK being used in your App to >v.15.2.2 (ideally to the most recently released v.15.5.0) do you still see the same issue/crash?

Reply