2013-03-17 698 views
10

我使用Youtube API在我的應用程序上擁有簡單的playerView。我做了API所要做的事情,但我一直在收到「應用程序已停止」消息。自從我使用韓語手機以來,我並不知道確切的英語短語。希望這是英文的正確用語。Youtube API「初始化YouTube播放器時發生錯誤。」

我把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 
+0

你可以發佈你的AndroidManifest.xml嗎?很有可能你錯過了許可。 – 2013-03-21 18:59:41

回答

10

我是有這個問題。然後,我只是在<manifest>標記中加入

<uses-permission android:name="android.permission.INTERNET"/>AndroidManifest.xml中。之後,該應用正常運行。

+0

hii我已經添加了互聯網權限,但它仍然給我錯誤相同 – Mahesh 2014-02-04 07:03:20

+0

@AndroidPower,確保你清理你的項目並重建它。發生在XML文件中的代碼更改不會自動觸發Eclipse的自動構建功能。 – alexismorin 2014-02-04 18:55:24

+1

嗨,現在是玩,但如果youtube播放器的應用程序沒有安裝在手機比不玩,我想播放youtubevideo沒有任何其他應用程序我怎麼能這樣做 – Mahesh 2014-02-05 05:05:00

2

也許,這似乎是開發者的關鍵問題。 位於DeveloperKey.java中的樣本DEVELOPER_KEY鍵將不起作用。 首先,註冊一個新的開發人員密鑰。 (https://code.google.com/apis/console) 然後,用有效的密鑰替換它。

+0

很好的答案。非常感謝 – VVB 2015-02-06 11:57:04

1

右鍵點擊項目進入屬性 - 建於路徑 - > libraries->的java>添加庫並添加您的jar文件那裏,然後它的工作

,如果你想使用YouTube視頻在您的應用設備必須包含youtube的應用程序,否則將無法正常工作

+0

您節省了我的幾個小時。謝謝。 – 2017-07-03 07:12:00

3

我做下面的步驟修復這個問題:

  • 清理項目然後重建項目
  • 在具有版本高於4.2.16的Youtube應用程序的設備中運行該應用程序。
0

如果玩家對谷歌眼鏡

當YouTube播放器失敗失敗,傳遞給失敗的方法YouTubeInitializationResult ARG1放慢參數包含有關爲什麼玩家失敗的信息。我簡單地烤了它,就像你在上面的代碼中看到的那樣。我在吐司裏得到了一份SERVIVE_MISSING印刷品。我在google's developer website上找到了可能的返回值列表,並且SERVICE_MISSING錯誤的原因是設備上缺少YouTube API服務。這項服務是谷歌用android發佈的標準的youtube應用程序的一部分,但顯然還沒有添加到玻璃。要解決該問題,您可以側載應用程序以獲取服務。遺憾的是,沒有辦法啓動YouTube應用並從中觀看視頻,因爲它是爲Android手機編寫的,並且沒有語音觸發/時間線卡。

可以從here下載,或者我已經在這裏下載: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

1

就在您的手機更新您的YouTube應用到最新版本,也將努力完善

+0

這對1加3 – Ankur 2018-02-15 10:45:43

0

我有這個問題上我的發佈版本,但加入這個後工作到proguard

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

我有同樣的問題,經過搜索和谷歌搜索這麼多,我得到的答案是: -

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

它會工作。

相關問題