URI不存在时的异常

时间:2012-11-11 08:58:10

标签: android

当我尝试从设置应用中打开“声音”时,它会因此例外而崩溃:

11-11 19:47:40.080: E/AndroidRuntime(6305): FATAL EXCEPTION: Thread-773
11-11 19:47:40.080: E/AndroidRuntime(6305): java.lang.IllegalStateException: Unknown URL: content://media/internal/audio/media/30/30
11-11 19:47:40.080: E/AndroidRuntime(6305):     at android.os.Parcel.readException(Parcel.java:1433)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at android.content.ContentProviderProxy.query(ContentProviderNative.java:366)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at android.content.ContentResolver.query(ContentResolver.java:370)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at android.content.ContentResolver.query(ContentResolver.java:313)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at com.android.settings.SoundSettings.updateRingtoneName(SoundSettings.java:331)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at com.android.settings.SoundSettings.access$300(SoundSettings.java:52)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at com.android.settings.SoundSettings$3.run(SoundSettings.java:252)
11-11 19:47:40.080: E/AndroidRuntime(6305):     at java.lang.Thread.run(Thread.java:856)

好像这个URI不存在:

  

内容://媒体/内部/音频/媒体/ 30/30

我跑了

  

Uri.parse( “内容://媒体/内部/音频/媒体/ 30/30”).getPath()

我回来了

  

/内部/音频/媒体/ 30/30

但是我的设备的文件系统上没有/ internal。

我的问题是,如何创建URI引用的此文件,以便应用程序不会因为丢失而崩溃?

由于

1 个答案:

答案 0 :(得分:-1)

这是一个解决方案,但它并不理想(您必须擦除手机):此问题的解决方法是在未启用“自动恢复”选项的情况下执行“恢复出厂设置”。

你会得到一个干净的手机,这个错误就会消失。

另一个对我不起作用但似乎对其他人有用的修复方法是在“管理应用程序”中清除任何应用程序的缓存和数据,其中包含“设置”,即“设置”,“系统设置” “

我仍然不确定导致此问题的原因,在使用手机短暂一段时间后会显现出来:是否可能是因为安装了特定的应用程序?