Android: Null pointer Exception lors de l'appel de nouveau l'intention
Je reçois un message d'erreur lorsque vous essayez d'appeler une nouvelle activité grâce à une intention:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
Mon Activité a un bouton, et lorsque vous cliquez dessus, il va à cette méthode:
public void onClickChangeActivity() {
Intent intent = new Intent(context , Details.class);
startActivity(intent);
}
public static contexte Contexte est créé dans le début de la classe, puis est instancié dans mon onCreate de contexte = getcontexteapplication();
J'ai aussi essayé de contexte = getBaseContext() et le contexte = RecyclerViewActivity.ce (RecyclerViewActivity est le nom de ma classe)
Toute aide pourquoi je reçois ce NullP? J'ai essayé tout ce qui a trait StackOverFlow réponses ont offert. Aussi, mon Manifeste comprend mon activité.
onClickChangeActivity est appelé de mon RecyclerViewerAdapter classe:
View.OnClickListener getPersonClickListener(final int position) {
return new View.OnClickListener() {
@Override
public void onClick(View view) {
RecyclerViewActivity recyclerViewActivity = new RecyclerViewActivity();
recyclerViewActivity.onClickChangeActivity();
}
};
Fichier Manifeste:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.akash.android_test" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".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=".DataFetcher" -->
<!-- android:label="@string/title_activity_data_fetcher" > -->
<!-- </activity> -->
<activity
android:name=".Crime"
android:label="@string/title_activity_crime"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".RecyclerViewActivity"
android:label="@string/title_activity_recycler_view"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".Details"
android:label="@string/title_activity_crime_details"
android:parentActivityName=".RecyclerViewActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="RecyclerViewActivity" />
</activity>
</application>
</manifest>
LogCat:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
at android.content.ContextWrapper.getPackageName(ContextWrapper.java:132)
at android.content.ComponentName.<init>(ComponentName.java:77)
at android.content.Intent.<init>(Intent.java:4160)
at com.bah.baltimoreopendata.android_baltimoreopendata.RecyclerViewActivity.onClickChangeActivity(RecyclerViewActivity.java:265)
at com.bah.baltimoreopendata.android_baltimoreopendata.RecycleViewAdapter$1.onClick(RecycleViewAdapter.java:121)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
- avez-vous essayé onClickChangeActivity(contexte)?
- Utilisation Intent intent = new Intent(RecyclerViewActivity.ce, Details.class); si fonctionne de la variable de contexte doivent être une variable finale et de l'utiliser comme onClickChangeActivity(contexte)
- Essayez avec context = ce;
- Juste essayé, même erreur, même si.
- Juste essayé ça aussi, même erreur.
- collez vos activités code et manifeste
- Ok @AkashMagoon post la méthode d'appel onClickChangeActivity méthode, peut-être que votre bouton n'est pas déclarer correctement
- Ce n'est pas un bouton, c'est une liste de cartes qui sont en cours de création par le biais d'un RecyclerView j'ai écrit. Les cartes sont déclarées correctement et le onClickChangeActivity est d'être touché (j'ai mis de journaux à l'intérieur pour vérifier.)
- J'ai ajouté ma auditeur ci-dessus
- Manifeste est au-dessus. Merci!
- Vérifier ma réponse,dites-moi si ça fonctionne.
Vous devez vous connecter pour publier un commentaire.
Problème, c'est que vous essayez d'appeler un activité méthode de la adaptateur:
Vous devez remplacer ce code dans la classe d'adaptateur. Dans la carte constructeur ajouter les lignes suivantes:
Et dans la getPersonClickListener méthode d'adaptateur:
Et lorsque vous appelez onClickChangeActivity méthode sur RecyclerViewActivity utilisation:
Et assurez-vous que Details.class s'étend de l'Activité.
essayez ceci:
utilisation
RecyclerViewActivity.this
au lieu decontext
Solution:
Dans la classe d'adaptateur créer un
private static Context context;
Dans votre inCreateViewHolder(), instancier contexte de viewGroup.getContext():
C'est la raison pour laquelle je recevais une Exception de Pointeur Null. Pour une raison quelconque, ce que je créer un constructeur avec un contexte, le contexte est toujours null. L'instanciation de contexte dans la classe ci-dessus a fait l'affaire! Merci à tous ceux qui ont répondu.
Vous essayez de démarrer Details.class -
Mais je ne peux pas trouver toutes les références à cette activité dans votre manifeste.
S'il vous plaît ajouter
À votre manifeste et assurez-vous que les Détails s'étend de l'Activité.