gpt4 book ai didi

Android:将声音保存为铃声/SQLiteConstraintException

转载 作者:太空狗 更新时间:2023-10-29 13:42:38 25 4
gpt4 key购买 nike

我正在尝试使用 this 在 Android 中将声音保存为铃声代码。它就像一个魅力,但如果我尝试保存已插入的铃声,它将失败。

保存时出现“SQLiteConstraintException”,但我无法捕获异常,事实上,我无法捕获任何 execption。

这是我的部分代码:

Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());

try {
this.getContentResolver().insert(uri, values);
} catch (SQLiteConstraintException e) {
Log.e("error", e.getMessage());
} catch (SQLiteException e) {
Log.e("error", e.getMessage());
} catch (Exception e) {
Log.e("error", e.getMessage());
}

所以我试图实际捕获任何可能的异常,但没有被捕获。

这是 LogCat:

10-12 18:32:51.627: ERROR/Database(217): Error inserting album_id=-1 title=Applause is_notification=true title_key=%,%J%J%B%,%T%P%4% mime_type=audio/ogg date_added=1286908371 _display_name=Applause.ogg is_alarm=true is_ringtone=true artist_id=1 is_music=false _data=/mnt/sdcard/media/audio/ringtones/Applause.ogg
10-12 18:32:51.627: ERROR/Database(217): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
10-12 18:32:51.627: ERROR/Database(217): at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
10-12 18:32:51.627: ERROR/Database(217): at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:55)
10-12 18:32:51.627: ERROR/Database(217): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1549)
10-12 18:32:51.627: ERROR/Database(217): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1410)
10-12 18:32:51.627: ERROR/Database(217): at com.android.providers.media.MediaProvider.insertInternal(MediaProvider.java:1813)
10-12 18:32:51.627: ERROR/Database(217): at com.android.providers.media.MediaProvider.insert(MediaProvider.java:1638)
10-12 18:32:51.627: ERROR/Database(217): at android.content.ContentProvider$Transport.insert(ContentProvider.java:174)
10-12 18:32:51.627: ERROR/Database(217): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
10-12 18:32:51.627: ERROR/Database(217): at android.os.Binder.execTransact(Binder.java:288)
10-12 18:32:51.627: ERROR/Database(217): at dalvik.system.NativeStart.run(Native Method)

我找到了一个解决方法:我在调用 .insert 方法之前检查声音文件是否存在(如果文件已经存在,则不要调用它),但我真的很想了解为什么没有捕获到异常.希望有人能帮助我。

亲切的问候,选择0r

最佳答案

它没有被捕获,因为异常不在你的代码中。它甚至不在你的过程中。它在 MediaStore 内容提供者的进程中。

关于Android:将声音保存为铃声/SQLiteConstraintException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3918034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com