Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SearchView上获取空对象引用_Java_Android_Nullreferenceexception_Searchview - Fatal编程技术网

Java 在SearchView上获取空对象引用

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

我正在制作一个android应用程序,在其中我添加了一个菜单文件,在其中我添加了一个项目来执行搜索。然后在main活动中,我添加了一个searchView变量,我正试图在oncreateoptions菜单方法中扩大该变量。当我尝试运行应用程序时,我收到以下错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.SearchView.SetSearchableInfo android.app.SearchableInfo”

这是我的菜单main.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="@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;