4

Suis nouveau dans le développement android.Am essayant d'implémenter youtube Api. Mais dans mon fichier XML, il montre l'erreur "ne peut pas être instancié: - com.google.android.youtube.player.YouTubePlayerView"n'a pas pu être instancié com.google.android.youtube.player.YouTubePlayerView

Voici mon Code MainActivity: -

public class MainActivity extends YouTubeBaseActivity { 
Button b; 
private YouTubePlayerView youtubeplayerview; 
private YouTubePlayer.OnInitializedListener onInitializedListener; 


@Override 
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { 
    super.onCreate(savedInstanceState, persistentState); 
    setContentView(R.layout.activity_main); 

    youtubeplayerview=(YouTubePlayerView)findViewById(R.id.Youtube_view); 
    onInitializedListener=new YouTubePlayer.OnInitializedListener(){ 
     @Override 
     public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
      youTubePlayer.loadVideo("wvjqFy33HVA"); 
     } 

     @Override 
     public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { 

     } 
    }; 
    b=(Button)findViewById(R.id.button); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      youtubeplayerview.initialize("API KEY",onInitializedListener); 
     } 
    }); 
} 
} 

Voici mon XML code fichier: -

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="PLAY VEDIO" 
    android:id="@+id/button" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

<com.google.android.youtube.player.YouTubePlayerView 
    android:layout_width="500dp" 
    android:layout_height="500dp" 
    android:id="@+id/Youtube_view" 
    android:layout_alignParentTop="true" 
    android:layout_above="@+id/button" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

Here is Error Screenshot

+0

Avez-vous trouvé la réponse? –

Répondre

-3

Avez-vous généré la clé d'api pour le lecteur android youtube? Lien: https://console.developers.google.com

Si oui, vous devez changer "API KEY" dans ce youtubeplayerview.initialize("API KEY",onInitializedListener); par votre clé API que vous avez générée auparavant.

Quoi qu'il en soit, vous pouvez essayer de remplacer la classe que vous par cette classe avec YoutubeDeveloperKey est la clé que vous avez généré:

public class ActivityPlayYouTube extends YouTubeBaseActivity implements 
     YouTubePlayer.OnInitializedListener { 

    private YouTubePlayer YPlayer; 
    private static final String YoutubeDeveloperKey = "YOUR_DEVELOPER_KEY_GOES_HERE"; 
    private static final int RECOVERY_DIALOG_REQUEST = 1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_playyoutube); 

     YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view); 
     youTubeView.initialize(YoutubeDeveloperKey, 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.you_tube_api, menu); 
     return true; 
    } 

    @Override 
    public void onInitializationFailure(YouTubePlayer.Provider provider, 
      YouTubeInitializationResult errorReason) { 
     if (errorReason.isUserRecoverableError()) { 
      errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show(); 
     } else { 
      String errorMessage = String.format(
        "There was an error initializing the YouTubePlayer", 
        errorReason.toString()); 
      Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show(); 
     } 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == RECOVERY_DIALOG_REQUEST) { 
      // Retry initialization if user performed a recovery action 
      getYouTubePlayerProvider().initialize(YoutubeDeveloperKey, this); 
     } 
    } 

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

    @Override 
    public void onInitializationSuccess(Provider provider, 
      YouTubePlayer player, boolean wasRestored) { 
     if (!wasRestored) { 
      YPlayer = player; 
      /* 
      * Now that this variable YPlayer is global you can access it 
      * throughout the activity, and perform all the player actions like 
      * play, pause and seeking to a position by code. 
      */ 
      YPlayer.cueVideo("2zNSgSzhBfM"); 
     } 
    } 
} 
+1

Ce problème se produit dans le fichier de disposition. J'ai donné la clé API dans le fichier java. Comment résoudre le problème dans le fichier de mise en page? – apostleofzion

0

Avez-vous ajouté API YouTube Android lecteur à votre bibliothèque? Ajoutant que résolu le problème pour me..Try ajoutant même en suivant les étapes ci-dessous:

1.Download YouTube Android Lecteur jar API de https://developers.google.com/youtube/android/player/downloads/

2.Extract le fichier zip, allez à libs - > YouTubeAndroidPlayerApi.jar et copiez

3.Paste le fichier jar à/app/libs/android en studio

Enfin ajouter compiler des fichiers ('libs/YouTubeAndroidPlayerApi.jar') à votre niveau d'application fichier build.gradle

Synchroniser, construire et vérifier si cela fonctionne bien