Youtube API "Произошла ошибка при инициализации проигрывателя YouTube".

Я использую API Youtube, чтобы иметь простой плеер в моем приложении. Я сделал то, что сказал API, но я продолжаю получать сообщение "приложение остановлено". Я не знаю точно английскую фразу, так как я использую корейский телефон. Надеюсь, что правильная фраза на английском.

Я поместил Youtubeandroidplayerapi.jar в libs и построил путь и имел ненужные компоненты в библиотеке.

Вот Menu.java.

package com.hobak.sci;

import com.hobak.sci.DeveloperKey;
import com.hobak.sci.R;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerView;
import android.os.Bundle;

public class Menu extends YouTubeBaseActivity implements
    YouTubePlayer.OnInitializedListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);

        YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
    youTubeView.initialize(DeveloperKey.DEVELOPER_KEY, this);
    }

    @Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider,
        YouTubePlayer player, boolean wasRestored) {
    if (!wasRestored) {
        player.cueVideo("2LHv1FPd1Ec");
    }
}

protected YouTubePlayer.Provider getYouTubePlayerProvider() {
    return (YouTubePlayerView) findViewById(R.id.youtube_view);
}

@Override
public void onInitializationFailure(Provider arg0,
        YouTubeInitializationResult arg1) {
    // TODO Auto-generated method stub

}

}

и вот мой xml файл

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFACD"
    android:orientation="vertical" >


  <com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/youtube_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />



</LinearLayout>

и вот мой logcat

03-17 15:55:51.260: E/AndroidRuntime(5277): FATAL EXCEPTION: main
03-17 15:55:51.260: E/AndroidRuntime(5277): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hobak.sci/com.hobak.sci.Menu}: java.lang.SecurityException: Not allowed to bind to service Intent { act=com.google.android.youtube.api.service.START }
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1961)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1986)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.ActivityThread.access$600(ActivityThread.java:128)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1152)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.os.Looper.loop(Looper.java:137)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.ActivityThread.main(ActivityThread.java:4453)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at java.lang.reflect.Method.invokeNative(Native Method)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at java.lang.reflect.Method.invoke(Method.java:511)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at dalvik.system.NativeStart.main(Native Method)
03-17 15:55:51.260: E/AndroidRuntime(5277): Caused by: java.lang.SecurityException: Not allowed to bind to service Intent { act=com.google.android.youtube.api.service.START }
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.ContextImpl.bindService(ContextImpl.java:1164)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.content.ContextWrapper.bindService(ContextWrapper.java:370)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at com.google.android.youtube.player.internal.r.e(Unknown Source)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at com.google.android.youtube.player.YouTubePlayerView.a(Unknown Source)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at com.google.android.youtube.player.YouTubeBaseActivity$a.a(Unknown Source)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at com.google.android.youtube.player.YouTubePlayerView.initialize(Unknown Source)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at com.hobak.sci.Menu.onCreate(Menu.java:21)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.Activity.performCreate(Activity.java:4467)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
03-17 15:55:51.260: E/AndroidRuntime(5277):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1925)
03-17 15:55:51.260: E/AndroidRuntime(5277):     ... 11 more

Ответ 1

У меня была эта проблема. Затем я добавил

<uses-permission android:name="android.permission.INTERNET"/> в тег AndroidManifest.xml в теге <manifest>. После этого приложение отлично работало.

Ответ 2

Я исправил эту проблему, выполнив следующие шаги:

  • Очистить проект, а затем перестроить проект
  • Запустите приложение на устройстве с приложением Youtube с версией выше 4.2.16.

Ответ 3

возможно, это похоже на проблему с ключом разработчика. образец ключа DEVELOPER_KEY, который находится в DeveloperKey.java, не будет работать. сначала зарегистрируйте новый ключ разработчика. (https://code.google.com/apis/console) затем замените это на действительный ключ.

Ответ 4

щелкните правой кнопкой мыши по проекту, перейдите в свойства- > java, встроенный в path- > libraries- > Добавьте библиотеку и добавьте туда файл jar, а затем он будет работать

если вы хотите использовать YouTube-видео в своем приложении, ваше устройство должно содержать приложение youtube, иначе оно не будет работать.

Ответ 5

Просто обновите приложение youtube до последней версии вашего телефона, и оно будет работать отлично

Ответ 6

Помимо добавления <uses-permission android:name="android.permission.INTERNET" /> в AndroidManifest.xml, вы должны иметь приложение youtube на устройстве/эмуляторе. Если вы хотите получить его на эмуляторе, отмените это:

https://play.google.com/store/apps/details?id=com.google.android.youtube&hl=en
(Вы можете получить apk с http://apps.evozi.com/apk-downloader/?id=com.google.android.youtube)

Ответ 7

Если проигрыватель не работает в Google Glass

Когда проигрыватель youtube терпит неудачу, параметр arg1 YouTubeInitializationResult, переданный методу сбоя, содержит информацию о том, почему проигрыватель потерпел неудачу. Я просто поджарил его, как вы можете видеть в приведенном выше коде. Я получил распечатку SERVIVE_MISSING в тосте. Я нашел список возможных возвращаемых значений на веб-сайте разработчика Google, и причиной ошибки SERVICE_MISSING является то, что служба API YouTube отсутствует на устройстве, Эта служба является частью стандартного приложения YouTube, которое Google распространяет с помощью Android, но, видимо, еще не добавило его в стакан. Чтобы устранить проблему, вы можете загрузить приложение для загрузки сервисов. Невозможно запустить приложение YouTube и смотреть видео с него, к сожалению, поскольку оно было написано для телефонов Android и не имеет голосового триггера/карты временной шкалы.

Его можно загрузить из здесь, или он загружен здесь: com.google.android.youtube-5.2.27.apk

Просто добавьте это с помощью:

adb install com.google.android.youtube-5.2.27.apk

Это устанавливает приложение YouTube на стекле. Теперь видео должно работать!

взято из: http://www.eg.bucknell.edu/~jpk017/doku.php?id=wiki:yt

Ответ 8

У меня была эта проблема в моей сборке релизов, но она работала после добавления этого в proguard

-keepclassmembers class fqcn.of.javascript.interface.for.webview {
       public *;
   }

Ответ 9

У меня была такая же проблема, так как после поиска и поиска в Google я получил ответ: -

           for youtube player you must have youtube app enabled and still if not work then update youtube to the latest version.

он будет работать тогда.