principales de java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo
Je suis en train d'utiliser API YouTube dans mon application Android. D'abord - si j'ai ajouté lib de mon projet doit quelque chose en valeurs apparaissent?
Seconde est là, mon erreur:
Logcat:
E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{pl.krasiniak.krachapp_beta/pl.krasiniak.krachapp_beta.Studio}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2079)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104)
at android.app.ActivityThread.access$600(ActivityThread.java:132)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4575)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at pl.krasiniak.krachapp_beta.Studio.onCreate(Studio.java:25)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2033)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104)
at android.app.ActivityThread.access$600(ActivityThread.java:132)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4575)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
at dalvik.system.NativeStart.main(Native Method)
Studio.java (je l'ai pris pour tester à partir d'un site)
package pl.krasiniak.krachapp_beta;
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.YouTubePlayerView;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import android.os.Bundle;
import android.widget.Toast;
public class Studio extends YouTubeBaseActivity implements
YouTubePlayer.OnInitializedListener{
public static final String API_KEY = "blabla";
public static final String VIDEO_ID = "o7VVHhK9zf0";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
YouTubePlayerView youTubePlayerView = (YouTubePlayerView)findViewById(R.id.youtube_view);
youTubePlayerView.initialize(API_KEY, this);
}
@Override
public void onInitializationFailure(Provider provider,
YouTubeInitializationResult result) {
Toast.makeText(getApplicationContext(),
"onInitializationFailure()",
Toast.LENGTH_LONG).show();
}
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player,
boolean wasRestored) {
if (!wasRestored) {
player.cueVideo(VIDEO_ID);
}
}
}
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pl.krasiniak.krachapp_beta"
android:versionCode="2"
android:versionName="1.1" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<usues-library android:name="com.google.android.youtube.player"/>
<activity
android:name="pl.krasiniak.krachapp_beta.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="pl.krasiniak.krachapp_beta.Schedule"
android:label="Plan Lekcji"
android:parentActivityName="pl.krasiniak.krachapp_beta.MainActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="pl.krasiniak.krachapp_beta.MainActivity" />
</activity>
<activity
android:name="pl.krasiniak.krachapp_beta.TimeTable"
android:label="Tablica"
android:parentActivityName="pl.krasiniak.krachapp_beta.MainActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="pl.krasiniak.krachapp_beta.MainActivity" />
</activity>
<activity
android:name="pl.krasiniak.krachapp_beta.AboutApp"
android:label="O Aplikacji"
android:parentActivityName="pl.krasiniak.krachapp_beta.MainActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="pl.krasiniak.krachapp_beta.MainActivity" />
</activity>
<activity
android:name="pl.krasiniak.krachapp_beta.Changes"
android:label="@string/title_activity_changes"
android:parentActivityName="pl.krasiniak.krachapp_beta.MainActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="pl.krasiniak.krachapp_beta.MainActivity" />
</activity>
<activity
android:name="pl.krasiniak.krachapp_beta.Studio"
android:label="@string/title_activity_studio"
android:parentActivityName="pl.krasiniak.krachapp_beta.MainActivity"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="pl.krasiniak.krachapp_beta.MainActivity" />
</activity>
</application>
J'ai lu de nombreux sujets sur la pile, car c'est l'erreur commune, mais aucune solution a fonctionné pour moi. Salutations!
EDIT: Voici mon activity_studio.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_gravity="center"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello YouTube API"
android:layout_margin="12dip"/>
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtube_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dip"/>
Et il dit que c'est l'erreur parce que:
java.lang.IllegalStateException: A YouTubePlayerView can only be created with an Activity which extends YouTubeBaseActivity as its context.
Mais il n'est toujours pas clair pour moi
Vous devez vous connecter pour publier un commentaire.
Je suppose Studio.java la ligne 25 est
youTubePlayerView.initialize(API_KEY, this)
YouTubePlayerView
est null. Vous devez vérifier l'identité de la vue xmlEdit:
Mais vous avez
dans
activity_studio.xml
AINSI le changement de