【问题标题】:YouTube Api for android exception "service_missing"适用于 Android 异常“service_missing”的 YouTube Api
【发布时间】:2013-08-07 22:13:46
【问题描述】:

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

我在 youtube 初始化时遇到了异常,比如“service_missing”。

我写下面的代码,

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);

    }

}

我还授予了 INTERNET 用户权限。

我在 4.2.2 中使用 google API AVD 测试此代码。

android:minSdkVersion="8"

android:targetSdkVersion="17"

有人知道吗?

提前谢谢...

【问题讨论】:

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


    【解决方案1】:

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

    将以下内容添加到 AndroidManifest 中的清单标记以修复 YouTube 问题:

    <queries>
       <intent>
         <action android:name="com.google.android.youtube.api.service.START" />
       </intent>
    </queries>
    

    【讨论】:

    • 更新此查询无效。 YouTubeInitializationResult.SERVICE_INVALID
    • 您还应该检查设备上是否安装了 YouTube 应用。
    • @ZahraJamshidi youtube 应用程序的任何特定版本?
    • 根据他们的文档:“用户需要运行 4.2.16 版的移动 YouTube 应用(或更高版本)才能使用 API。”编号:developers.google.com/youtube/android/player
    【解决方案2】:

    正如the API documentation for the Youtube API 所说:

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

    您需要将 Youtube 应用安装到模拟器中才能运行。

    【讨论】:

    • 您可以使用Genymotion 之类的东西作为安装了 Google Play 服务的模拟器,这样您就可以获取 Youtube 应用程序。
    • 在 Android 11 (30) API 上我安装了 YouTube 应用,但问题仍然存在,之前的 30 API 一切正常
    • @user25 页面未找到
    • 从 android 11 起存在包可见性限制,在清单文件中添加以下代码: 引用:medium.com/androiddevelopers/…
    猜你喜欢
    • 2013-10-04
    • 1970-01-01
    • 2014-04-11
    • 2012-07-12
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    相关资源
    最近更新 更多