只能使用将YouTubeBaseActivity扩展为其上下文的活动来创建YouTubePlayerView

时间:2016-01-25 21:02:14

标签: java android xml youtube-api

我收到此错误是我的XML文件,但由于我的Activity已经扩展了YouTubeBaseActivity,因此无法弄明白。有人能帮助我吗?

<com.google.android.youtube.player.YouTubePlayerView
        android:id="@+id/youtube_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp" />

的活动:

public class UserHomepage extends YouTubeBaseActivity implements
    YouTubePlayer.OnInitializedListener

堆栈跟踪

java.lang.IllegalStateException: A YouTubePlayerView can only be created with an Activity  which extends YouTubeBaseActivity as its context.
at com.google.android.youtube.player.YouTubePlayerView.<init>(Unknown Source)
at com.google.android.youtube.player.YouTubePlayerView.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)

2 个答案:

答案 0 :(得分:0)

由于所有其他类似的异常都是由于没有扩展YoutubeBaseActivity。这可能是一个错误,可能是布局inflater试图实例化通过Activity上下文而不是YoutubeBaseActivity的视图。

拿0:

检查您是否使用最新版本的sdk,工具和youtube api。

拿1:

添加具有相同属性的FrameLayout,然后以编程方式添加YoutubePlayerView。简单的FrameLayout不应对您的视图层次结构做出太多贡献。无论如何,试一试。

拿2: 使用播放器的片段版本。

答案 1 :(得分:0)

从此处下载YoutubePlayer API jar文件 https://developers.google.com/youtube/android/player/downloads/

然后放入libs文件夹,然后在依赖项中添加此行

compile 'com.google.android.gms:play-services:8.4.0'
compile files('libs/YouTubeAndroidPlayerApi.jar')