0

I am trying to use class androidx.media2.widget.VideoView. The application crashes. I am getting:

TextureView doesn't support displaying a background drawable

I do not set any background drawable to it. Below you can see a fragment of my XML file, and I am also not setting any background drawable programmatically.

This is how I use it in my layout file:

<androidx.media2.widget.VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:background="@android:color/transparent"
        android:visibility="visible"
        />

This is the stack trace I am receiving:

2021-10-16 11:02:48.554 12002-12002/com.craftguide.app E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.craftguide.app, PID: 12002
    android.view.InflateException: Binary XML file line #28 in com.craftguide.app:layout/course_detail: Binary XML file line #28 in com.craftguide.app:layout/course_detail: Error inflating class androidx.media2.widget.VideoView
    Caused by: android.view.InflateException: Binary XML file line #28 in com.craftguide.app:layout/course_detail: Error inflating class androidx.media2.widget.VideoView
    Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:852)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
        at com.craftguide.app.databinding.CourseDetailBinding.inflate(CourseDetailBinding.java:132)
        at craftguide.ui.main.courselist.CourseDetailFragment.onCreateView(CourseDetailFragment.kt:90)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3138)
        at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3072)
        at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251)
        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:502)
        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
        at android.app.Activity.performStart(Activity.java:8024)
        at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475)
        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.UnsupportedOperationException: TextureView doesn't support displaying a background drawable
        at android.view.TextureView.setBackgroundDrawable(TextureView.java:328)
        at android.view.View.setBackground(View.java:23655)
        at android.view.View.<init>(View.java:6037)
        at android.view.View.<init>(View.java:5430)
        at android.view.View.<init>(View.java:5409)
        at android.view.TextureView.<init>(TextureView.java:154)
        at androidx.media2.widget.VideoTextureView.<init>(VideoTextureView.java:36)
2021-10-16 11:02:48.554 12002-12002/com.craftguide.app E/AndroidRuntime:     at androidx.media2.widget.VideoView.initialize(VideoView.java:277)
        at androidx.media2.widget.VideoView.<init>(VideoView.java:267)
        at androidx.media2.widget.VideoView.<init>(VideoView.java:262)
            ... 38 more

1 Answers1

0

The problem was setting background color in the style:

<style name="AppTheme" parent="Theme.MaterialComponents">
    <!-- Customize your theme here. -->
    ...
    <item name="android:background">@android:color/transparent</item>
    ...
</style>