在向内容提供程序插入新数据时出现错误,请参见下面的代码。PS。我只是将以下代码直接放入Activity的onCreate()中,然后执行。
ContentValues values=new ContentValues();
values.put(MediaStore.Audio.Media.TITLE,"Example Song");
values.put(MediaStore.Audio.Media.ARTIST,"Unknown");
getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,values);
只是简单地插入新的歌曲数据,但出现了以下错误。
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.lastIndexOf(int)' on a null object reference
at android.os.Parcel.readException(Parcel.java:1605)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
at android.content.ContentResolver.insert(ContentResolver.java:1254)
at com.example.flover.contentproviderdemo.MainActivity.onCreate(MainActivity.java:48)
有人能告诉我为什么吗?提前感谢。
lastIndexOf()
是在ContentProvider
类上调用的,并且它使用URI
参数来查找与请求相关的数据/ID/...,但我无法解释为什么它会为空?我的意思是URI
为空吗?传递的值是MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
这是API常量?!它怎么可能为空? - Yazan