Notre application reçoit quelques rapports d'erreur par semaine avec cette erreur NullPointerException sur un onActivityResult(). Nous l'avons testé sur de nombreux téléphones et nous avons essayé de réparer notre code, mais nous recevons toujours des rapports de la console de développement.java.lang.NullPointerException lors de la recherche de l'étiquette d'appel?
Voici l'erreur:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1001, result=-1, data=Intent { dat=content://com.android.contacts/data/612 flg=0x1 (has extras) }} to activity {com.package.app/com.package.app.PhoneLog}: java.lang.NullPointerException
at android.app.ActivityThread.deliverResults(ActivityThread.java:2536)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:2578)
at android.app.ActivityThread.access$2000(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:965)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3691)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.package.app.PhoneLog..onActivityResult(PhoneLog.java:555)
at android.app.Activity.dispatchActivityResult(Activity.java:3934)
at android.app.ActivityThread.deliverResults(ActivityThread.java:2532)
... 11 more
Je pense qu'il ya erreur vient d'où nous obtenons l'étiquette d'appel de la onActivityResult() ci-dessous:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch(requestCode) {
case PICK_CONTACT:
// handle the contact result
Cursor c = getContact(data.getData());
if (c.moveToFirst())
{
String name = c.getString(c.getColumnIndex("display_name"));
String num = c.getString(c.getColumnIndex("data1"));
typeLabel = c.getString(c.getColumnIndex("data2"));
long l = c.getInt(c.getColumnIndex("contact_id"));
c.getString(c.getColumnIndex("custom_ringtone"));
//error is here Caused by: java.lang.NullPointerException //at PhoneLog.onActivityResult(PhoneLog.java:555)
if(typeLabel.equals("1")) {
typeLabel = "Home";
} else if(typeLabel.equals("2")) {
typeLabel = "Mobile";
} else if(typeLabel.equals("3")) {
typeLabel = "Work";
} else {
typeLabel = "";
}
callerName.setText(name);
callerNum.setText(num);
setChosenContactId(l);
}
break;
}
}
}
pouvez-vous publier ce qui est en ligne PhoneLog.java: 555 \ – nandeesh
La ligne 555 est 'if (typeLabel.equals (" 1 ")) {' – user961389
Pourquoi ne pas simplement vérifier null à chaque si ou simplement faire la valeur par défaut action lorsque vous obtenez typelabel comme nulle. Certains contacts peuvent ne pas avoir de données2 – nandeesh