YouTube Api for android例外"service_missing"

Har*_*tel 12 android youtube-api android-youtube-api

我想在我的Android应用程序中播放管视频

我在例如"service_missing"之类的youtube初始化时遇到异常.

我写下面的代码,

package com.example.youtubedemo;
import android.os.Bundle;

import android.view.Menu;
import android.widget.Toast;
import com.google.android.youtube.player.*;
import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener;
import com.google.android.youtube.player.YouTubePlayer.Provider;

public class MainActivity extends YouTubeBaseActivity implements OnInitializedListener{

    static private final String DEVELOPER_KEY = "MY API KEY";

    static private final String VIDEO = https://www.youtube.com/watch?v=d6XXgeAkBfQ&list=PLWz5rJ2EKKc9Wam5jE-9oY8l6RpeAx-XM";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        YouTubePlayerView youTubeView = (YouTubePlayerView)
                findViewById(R.id.youtube_view);
        youTubeView.initialize(DEVELOPER_KEY, MainActivity.this);
    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }



    @Override
    public void onInitializationFailure(Provider arg0,YouTubeInitializationResult error) {
        Toast.makeText(this, "Oh no! "+error.toString(),Toast.LENGTH_LONG).show();

        Toast.makeText(this, ""+YouTubeInitializationResult.SERVICE_MISSING,Toast.LENGTH_LONG).show();
    }



    @Override
    public void onInitializationSuccess(Provider arg0, YouTubePlayer player,
            boolean arg2) {
        player.loadVideo(VIDEO);

    }

}
Run Code Online (Sandbox Code Playgroud)

我还给了INTERNET用户许可.

我使用谷歌API AVD在4.2.2中测试了这段代码.

机器人:的minSdkVersion = "8"

机器人:targetSdkVersion = "17"

任何人都有任何想法?

提前致谢...

Ste*_*n V 21

正如Youtube API的API文档所述:

YouTubeInitializationResult.SERVICE_MISSING
此设备上缺少YouTube API服务.

您需要将Youtube应用程序安装到模拟器中才能使其正常工作.

  • 在 Android 11 (30) API 上,我安装了 YouTube 应用程序,但仍然存在同样的问题,之前的 30 API 一切正常 (5认同)

小智 20

Android 11 的问题是操作系统限制了对其他应用程序的访问。 https://developer.android.com/training/basics/intents/package-visibility

将以下内容添加到 AndroidManifest 中的 manifest 标签以修复 YouTube 问题:

<queries>
   <intent>
     <action android:name="com.google.android.youtube.api.service.START" />
   </intent>
</queries>
Run Code Online (Sandbox Code Playgroud)