Java 在SearchView上获取空对象引用
我正在制作一个android应用程序,在其中我添加了一个菜单文件,在其中我添加了一个项目来执行搜索。然后在main活动中,我添加了一个searchView变量,我正试图在oncreateoptions菜单方法中扩大该变量。当我尝试运行应用程序时,我收到以下错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.SearchView.SetSearchableInfo android.app.SearchableInfo” 这是我的菜单main.xml的代码Java 在SearchView上获取空对象引用,java,android,nullreferenceexception,searchview,Java,Android,Nullreferenceexception,Searchview,我正在制作一个android应用程序,在其中我添加了一个菜单文件,在其中我添加了一个项目来执行搜索。然后在main活动中,我添加了一个searchView变量,我正试图在oncreateoptions菜单方法中扩大该变量。当我尝试运行应用程序时,我收到以下错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.SearchView.SetSearchableInfo android.app.SearchableI
<?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="@string/search"
android:orderInCategory="1"
app:showAsAction ="ifRoom"
android:id="@+id/action_search"
/>
</menu>
格雷德尔先生
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.passengerearth.coronago"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
AndroidX将原来的支持库API替换为中的软件包
androidx名称空间
您正在使用androidx。因此,添加androidx支持
<item
android:id="@+id/action_search"
.....................
app:actionViewClass="androidx.appcompat.widget.SearchView" />
这回答了你的问题吗?我跟踪了与类似问题的链接。有人建议在menu.xml文件中添加app:actionViewClass=android.support.v7.widget.SearchView,但在我的例子中,当我尝试这样做时,它会将v7.widget.SearchView变成红色,并显示未解析的类。谢谢,我已经更新了您在链接问题上提到的答案,以使用新的androidx库-看看这是否有帮助。现在它给出了一个不同的错误ClassCastException:androidx.appcompat.widget.SearchView不能转换为android.widget.SearchView。ThankYou@Arnab您应该导入导入androidx.appcompat.widget.SearchView;
<item
android:id="@+id/action_search"
.....................
app:actionViewClass="androidx.appcompat.widget.SearchView" />
import androidx.appcompat.widget.SearchView;