Crash: TextureView doesn't support displaying a background drawable when using with compose
Opened this issue · 0 comments
Svoka commented
Description
I receive a TextureView doesn't support displaying a background drawable
crash when trying to use Rive with Compose on Android 11
Provide a Repro
AndroidView(
modifier = Modifier,
factory = { context ->
RiveAnimationView
.Builder(context)
.setAutoplay(true)
.setResource("my_res")
.build()
},
update = { }
)
Look like it happen because of a
fun build(): RiveAnimationView {
return RiveAnimationView(this)
}
which invokes
RiveTextureView(context, attrs),
which invokes
TextureView(context, attrs)
what I dig in my tests that you don't have to pass attrs if they are null, because under the hood the View.java class will try to applied default values which contains background attribute. And will try to it in any case where constructor different from
View(context) callled
So I guess the possible fix is to add another constructor for RiveTextureView (so a call will start something like this)
abstract class RiveTextureView(context: Context) :
TextureView(context),
TextureView.SurfaceTextureListener {
Expected behavior
App do not crashed
Device & Versions (please complete the following information)
- Device: BE2029 OnePlus Nord N10 5G
- SDK Level [e.g. Android SDK API Level 30]