在列表适配器中膨胀 class com.google.android.youtube.player.YouTubePlayerView 时出错

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

我正在尝试充气

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

在列表适配器中,以便我可以在列表视图中播放视频,但我收到错误

充气时出错 class com.google.android.youtube.player.YouTubePlayerView

而如果我使用

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

它正在膨胀,没有任何错误,我可以在列表视图中显示缩略图

我的要求是当用户点击这个缩略图视频时应该在列表视图中播放

请建议我怎样才能做到这一点?

来自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.

因此,您必须确保您的 activity 扩展 YouTubeBaseActivity。或者,如果您的 activity 不需要扩展库提供的 activity,您可以使用 android.support.v4.

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

除了 not_a_bot 的回答之外,我想补充一点,您应该确保调用 super.onCreate(Bundle) 方法,因为看起来 YouTubeBaseActivity class 没有 @CallSuper 注释。

如果您不想在布局中使用片段,您可以使用的另一种解决方案是将 activity 从 YouTubeBaseActivity() 扩展。这将允许您在布局

中使用 <com.google.android.youtube.player.YouTubePlayerView/>

示例:

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

在您的 java 文件中 MainActivity.java 尝试将 public class MainActivity extends AppCompatActivity 替换为 public class MainActivity extends YouTubeBaseActivity