2013-03-17 31 views
10

Sto usando l'API di Youtube per avere un semplice playerView sulla mia applicazione. Ho fatto quello che l'API ha detto di fare ma continuo a ricevere il messaggio "application is stopped". Non so esattamente la frase inglese esatta dal momento che sto usando un telefono coreano. Spero che questa sia la frase giusta in inglese.Youtube API "Si è verificato un errore durante l'inizializzazione del player di YouTube."

Ho messo Youtubeandroidplayerapi.jar in libs e ho creato il percorso e ho i componenti non necessari nella libreria.

Qui è 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 

} 

} 

e qui è il mio file 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> 

e qui è la mia 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

Puoi pubblicare il tuo AndroidManifest.xml? Molto probabilmente ti manca un permesso lì. –

risposta

10

ho avuto questo problema. Quindi ho aggiunto

<uses-permission android:name="android.permission.INTERNET"/> nello AndroidManifest.xml nel tag <manifest>. L'app ha funzionato bene dopo.

+0

hii aggiungo già il permesso per internet ma ancora mi dà errore lo stesso – Mahesh

+0

@AndroidPower, assicurati di pulire il tuo progetto e ricostruirlo. Succede che le modifiche al codice nei file XML non attivano automaticamente la funzione di creazione automatica di Eclipse. – alexismorin

+1

Ciao ora è riprodotto, ma se l'app di YouTube Player non è installata nel cellulare di quanto non si gioca voglio giocare a YouTube senza alcuna altra app come posso fare questo – Mahesh

2

forse, sembra che il problema chiave dello sviluppatore. esempio chiave DEVELOPER_KEY che si trova in DeveloperKey.java non funzionerà. prima, registra una nuova chiave sviluppatore. (https://code.google.com/apis/console) quindi, sostituirlo con una chiave valida.

+0

Ottima risposta. Grazie mille – VVB

1

fare clic destro sul progetto di andare a Properties-> java costruito nel percorso-> libraries-> Aggiungi biblioteca e aggiungere il file jar lì e poi si sta lavorando

se si desidera utilizzare il video di YouTube in un'applicazione sul dispositivo Deve contenere un'applicazione di youtube altrimenti non funzionerà

+0

Mi hai salvato diverse ore. Grazie. –

3

Ho risolto questo problema facendo passi di seguito:

  • Pulisci progetto poi Ricostruisci progetto
  • Esegui l'applicazione in un dispositivo che ha un'app YouTube con una versione superiore a 4.2.16.
0

Se il giocatore non riesce a Google Glass

Quando il player di YouTube non riesce, l'arg1 paramter YouTubeInitializationResult passato al metodo fallimento contiene informazioni sul motivo per cui il giocatore non è riuscito. L'ho semplicemente tostato, come puoi vedere nel codice sopra. Ho ricevuto una stampa SERVIVE_MISSING nel brindisi. Ho trovato l'elenco dei possibili valori restituiti su google's developer website e la causa dell'errore SERVICE_MISSING è che il servizio YouTube API non è presente sul dispositivo. Questo servizio fa parte dell'app standard per youtube che google distribuisce con Android, ma a quanto pare non l'ha ancora aggiunto al vetro. Per risolvere il problema, puoi caricare lateralmente l'app per ottenere i servizi.Sfortunatamente, non c'è modo di avviare l'app YouTube e guardare i video da essa, poiché è stata scritta per i telefoni Android e non ha alcuna scheda trigger/timeline.

può essere scaricato da here, o l'ho caricato qui: com.google.android.youtube-5.2.27.apk

Semplicemente sideload questo con:

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

Questo installa l'app YouTube sul vetro. Ora il video dovrebbe funzionare!

Tratto da: http://www.eg.bucknell.edu/~jpk017/doku.php?id=wiki:yt

1

Basta aggiornare l'app YouTube alla versione più recente nel telefono e che funzionerà perfetto

+0

Questo ha funzionato per uno più 3 – Ankur

0

ho avuto questo problema sul mio build di rilascio, ma ha funzionato dopo l'aggiunta di questo per Proguard

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

ho avuto lo stesso problema, dopo la ricerca e googling così tanto, ho ottenuto la risposta che: -

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

quindi funzionerebbe.

Problemi correlati