参见下面的菜单xml文件,
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:title="Search"
android:id="@+id/search_menu"
android:icon="@android:drawable/ic_menu_search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always"/>
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,如果使用android:actionViewClass,我会得到类似searchview为null的错误,但是使用app:actionViewClass,一切似乎都很好。所以我想知道为什么:android:actionViewClass和app:actionViewClass之间有区别。
执行插入新数据到内容提供程序时出错,请参见下面的代码,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);
Run Code Online (Sandbox Code Playgroud)
只是简单地插入新的歌曲数据,但出现以下错误。
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)
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么?提前致谢。