Naga
Naga

Reputation: 2021

Error inflating class com.google.android.youtube.player.YouTubePlayerView In List Adapter

I am trying to inflate

<com.google.android.youtube.player.YouTubePlayerView
                android:id="@+id/youtubeplayerview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="5dp" />

in List adapter so that I can play video in the listview it self but I am getting error

Error inflating class com.google.android.youtube.player.YouTubePlayerView

while if I am using

<com.google.android.youtube.player.YouTubeThumbnailView
                android:id="@+id/youtubeplayerview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="5dp" />

It is getting inflated without any error and I am able to display thumbnail in list view

My requirement is when user click on this thumbnail video should play in list view

Please suggest how can I achieve this ?

Upvotes: 16

Views: 23620

Answers (4)

user7156149
user7156149

Reputation: 21

In your java file MainActivity.java try to replace public class MainActivity extends AppCompatActivity with public class MainActivity extends YouTubeBaseActivity.

Upvotes: 2

Robert
Robert

Reputation: 1192

If you do not want to use fragment in your layout, another solution that you can use is extends your activity from YouTubeBaseActivity() . This will allow you use <com.google.android.youtube.player.YouTubePlayerView/> inside your layout

Example:

class PlayVideoActivity : YouTubeBaseActivity(), YouTubePlayer.OnInitializedListener {...}

Upvotes: 0

Dragas
Dragas

Reputation: 1311

In addition to not_a_bot's answer, I'd like to add that you should make sure that you call super.onCreate(Bundle) method, as it seems that YouTubeBaseActivity class doesn't have the @CallSuper annotation.

Upvotes: 1

not_a_bot
not_a_bot

Reputation: 2362

From the documentation:

Using this View directly is an alternative to using the YouTubePlayerFragment. If you choose to use this view directly, your activity needs to extend YouTubeBaseActivity.

Therefore, you must make sure your activity extends YouTubeBaseActivity. Alternatively, if your activity does not need to extend an activity provided by the library, you can use the YouTubePlayerSupportFragment and FrameActivity from android.support.v4.

<fragment
  android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
  android:id="@+id/youtubesupportfragment"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"/>

Upvotes: 25

Related Questions