【问题标题】:Android : Error Initilazing the Youtube playerAndroid:启动 Youtube 播放器时出错
【发布时间】:2016-08-12 04:35:09
【问题描述】:

我使用 YouTubeAndroidPlayerApi 在我的应用中实现了一个 YouTube 播放器来播放我添加到我的应用中的视频。直到两天前突然出现错误时,一切正常。我一直在尝试解决这个问题,但失败了。请帮帮我。

onCreate

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.youtube_lightbox);
        final RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout_youtube_activity);
        relativeLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
        final YouTubePlayerView playerView = (YouTubePlayerView) findViewById(R.id.youTubePlayerView);

        if (savedInstanceState != null) {
            millis = savedInstanceState.getInt(KEY_VIDEO_TIME);
        }

        final Bundle extras = getIntent().getExtras();
        if (extras != null && extras.containsKey(KEY_VIDEO_ID)) {
            mVideoId = extras.getString(KEY_VIDEO_ID);
        } else {
            finish();
        }

        playerView.initialize(API_KEY, this);



    }

onInitializationSuccess

  @Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
    mPlayer = youTubePlayer;
    youTubePlayer.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_ORIENTATION);
    youTubePlayer.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI);
    youTubePlayer.setOnFullscreenListener(new YouTubePlayer.OnFullscreenListener() {
        @Override
        public void onFullscreen(boolean b) {
            isFullscreen = b;
        }
    });
    if (mVideoId != null && !b) {
        youTubePlayer.loadVideo(mVideoId);
    }

    if (b) {
        youTubePlayer.seekToMillis(millis);
    }

}

错误

E/YouTubeAndroidPlayerAPI: Error creating YouTubePlayerView
  com.google.android.youtube.player.internal.w$a: Exception thrown by invoked constructor in com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source)
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source)
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source)
                                                                                    at com.google.android.youtube.player.internal.ac.a(Unknown Source)
                                                                                    at com.google.android.youtube.player.YouTubePlayerView.a(Unknown Source)
                                                                                    at com.google.android.youtube.player.YouTubePlayerView$1.a(Unknown Source)
                                                                                    at com.google.android.youtube.player.internal.r.g(Unknown Source)
                                                                                    at com.google.android.youtube.player.internal.r$c.a(Unknown Source)
                                                                                    at com.google.android.youtube.player.internal.r$b.a(Unknown Source)
                                                                                    at com.google.android.youtube.player.internal.r$a.handleMessage(Unknown Source)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                    at android.os.Looper.loop(Looper.java:145)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5832)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
                                                                                 Caused by: java.lang.reflect.InvocationTargetException
                                                                                    at java.lang.reflect.Constructor.newInstance(Native Method)
                                                                                    at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.ac.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.YouTubePlayerView.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.YouTubePlayerView$1.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.r.g(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.r$c.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.r$b.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.r$a.handleMessage(Unknown Source) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                    at android.os.Looper.loop(Looper.java:145) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5832) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
                                                                                 Caused by: java.lang.IllegalArgumentException: The concrete class implementing IObjectWrapper must have exactly *one* declared private field for the wrapped object.  Preferably, this is an instance of the ObjectWrapper<T> class.
                                                                                    at tff.a(SourceFile:76)
                                                                                    at com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.<init>(SourceFile:147)
                                                                                    at java.lang.reflect.Constructor.newInstance(Native Method) 
                                                                                    at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.w.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.ac.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.YouTubePlayerView.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.YouTubePlayerView$1.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.r.g(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.r$c.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.r$b.a(Unknown Source) 
                                                                                    at com.google.android.youtube.player.internal.r$a.handleMessage(Unknown Source) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                    at android.os.Looper.loop(Looper.java:145) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5832) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)  

谁能指出问题所在。提前致谢。

【问题讨论】:

  • 基于此forum“导入 appcompat 23.0.1 而不是最新版本将解决此问题。”

标签: android youtube youtube-api youtube-data-api android-youtube-api


【解决方案1】:

您的设备上是否安装了 google youtube 应用程序?

将 youtube 应用从 Playstore 更新到最新版本, 或者如果你没有,你可以安装它。 然后运行 ​​youtube 应用程序,

最后一步,尝试再次使用 youtube 播放器运行您自己的应用。 告诉我它是否有效。

【讨论】:

    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 2013-01-29
    • 2013-03-05
    • 2012-07-02
    • 2021-11-21
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多