T
The_S
Fortgeschrittenes Mitglied
- 10
Hallo,
der Benutzer meiner App soll einen Ton auswählen. Hierzu verwende ich in der onClick-Methode folgenden Code:
meine onActivityResult-Methode sieht wie folgt aus:
Nachdem ich den Auswahldialog bestätigt habe, erhalte ich beim Aufruf von uri.toString() eine NullPointerException und meine App stürzt ab:
Ein paar Sekunden später erhalte ich noch folgende Warnung:
Was mache ich falsch? Fehler tritt sowohl auf meinem Desire als auch im Emulator auf.
Danke und Grüße
Stefan
der Benutzer meiner App soll einen Ton auswählen. Hierzu verwende ich in der onClick-Methode folgenden Code:
Code:
startActivityForResult(new Intent(RingtoneManager.ACTION_RINGTONE_PICKER), RINGTONE_PICKER);
meine onActivityResult-Methode sieht wie folgt aus:
Code:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RINGTONE_PICKER) {
if (resultCode == RESULT_OK && data.hasExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI)) {
Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
sound.setText(uri.toString());
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Nachdem ich den Auswahldialog bestätigt habe, erhalte ich beim Aufruf von uri.toString() eine NullPointerException und meine App stürzt ab:
Code:
02-11 13:59:14.402: ERROR/AndroidRuntime(938): FATAL EXCEPTION: main
02-11 13:59:14.402: ERROR/AndroidRuntime(938): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=3, result=-1, data=Intent { (has extras) }} to activity {meinpackage/meinpackage.MeineActivity}: java.lang.NullPointerException
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.app.ActivityThread.deliverResults(ActivityThread.java:3515)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.app.ActivityThread.access$2800(ActivityThread.java:125)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.os.Handler.dispatchMessage(Handler.java:99)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.os.Looper.loop(Looper.java:123)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at java.lang.reflect.Method.invokeNative(Native Method)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at java.lang.reflect.Method.invoke(Method.java:521)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at dalvik.system.NativeStart.main(Native Method)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): Caused by: java.lang.NullPointerException
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at meinpackage.activities.MeineActivity.onActivityResult(AddAlarmActivity.java:90)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.app.Activity.dispatchActivityResult(Activity.java:3890)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
02-11 13:59:14.402: ERROR/AndroidRuntime(938): ... 11 more
Ein paar Sekunden später erhalte ich noch folgende Warnung:
Code:
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): Releasing statement in a finalizer. Please ensure that you explicitly call close() on your cursor: SELECT _id, title, "content://media/external/audio/media", title_key FROM audio WHERE (is_ringtone=1
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:62)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:100)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:330)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at com.android.providers.media.MediaProvider.query(MediaProvider.java:1468)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:150)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:111)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at android.os.Binder.execTransact(Binder.java:288)
02-11 13:59:40.672: WARN/SQLiteCompiledSql(200): at dalvik.system.NativeStart.run(Native Method)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): Releasing statement in a finalizer. Please ensure that you explicitly call close() on your cursor: SELECT _id, title, "content://drm/audio", title AS title_key FROM audio ORDER BY title
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:62)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:100)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:330)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:280)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at com.android.providers.drm.DrmProvider.query(DrmProvider.java:177)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:150)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:111)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at android.os.Binder.execTransact(Binder.java:288)
02-11 13:59:40.692: WARN/SQLiteCompiledSql(200): at dalvik.system.NativeStart.run(Native Method)
Was mache ich falsch? Fehler tritt sowohl auf meinem Desire als auch im Emulator auf.
Danke und Grüße
Stefan