3 Stimmen

NPE auf HTC Sensation, funktioniert im Emulator

Ich habe einige Codes verwendet, um eine einfache App zu erstellen, die das Hinzufügen von Kontaktinformationen ermöglicht. Der Code ist sehr einfach und funktioniert gut im Emulator und auf einer Reihe von Geräten, die ich habe, außer auf dem neuen HTC Sensation.

Hier ist der Code:

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();

    ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
                            .withValue(RawContacts.ACCOUNT_TYPE, null)
                            .withValue(RawContacts.ACCOUNT_NAME, null)
                            .build());

    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                            .withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)
                            .withValue(Phone.NUMBER, number.getText().toString().trim())
                            .withValue(Phone.TYPE, "TYPE_MOBILE")
                            .build());
    ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
                            .withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
                            .withValue(Data.MIMETYPE,
                             StructuredName.CONTENT_ITEM_TYPE)
                            .withValue(StructuredName.DISPLAY_NAME, name.getText().toString().trim())
                            .build());  
    try {
        ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    } catch (RemoteException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (OperationApplicationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Wenn ich ihn ausführe, erhalte ich folgende Meldung:

java.lang.NullPointerException
 at android.os.Parcel.readException(Parcel.java:1328)
 at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
 at android.database.DatabaseUtils.readExceptionWithOperationApplicationExceptionFromParcel(DatabaseUtils.java:137)
 at android.content.ContentProviderProxy.applyBatch(ContentProviderNative.java:491)
 at android.content.ContentProviderClient.applyBatch(ContentProviderClient.java:95)
 at android.content.ContentResolver.applyBatch(ContentResolver.java:641)
 at uk.co.androidfun.getthatnumber.mainActivity.saveCallContact(mainActivity.java:157)
 at uk.co.androidfun.getthatnumber.mainActivity$3.onClick(mainActivity.java:74)
 at android.view.View.performClick(View.java:2532)
 at android.view.View$PerformClick.run(View.java:9277)
 at android.os.Handler.handleCallback(Handler.java:587)
 at android.os.Handler.dispatchMessage(Handler.java:92)
 at android.os.Looper.loop(Looper.java:143)
 at android.app.ActivityThread.main(ActivityThread.java:4196)
 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:839)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
 at dalvik.system.NativeStart.main(Native Method)

Ich habe mir den Code angesehen und kann kein Problem erkennen, und wie gesagt, es funktioniert gut im Emulator unter 2.3.3, aber nicht auf dem Telefon mit demselben.

Danke John

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X