androidx.appcompat.widget.SearchView 无法转换为 android.widget.SearchView

androidx.appcompat.widget.SearchView cannot be cast to android.widget.SearchView

当我启动我的应用程序时,抛出以下错误:

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.app, PID: 5513 java.lang.ClassCastException: androidx.appcompat.widget.SearchView cannot be cast to android.widget.SearchView at com.example.app.MainActivity.onCreateOptionsMenu(MainActivity.java:169)

我正在尝试在应用栏中使用搜索视图。

该解决方案与 this one 非常相似,只是它与 Android X 相关。

所以您只需要将 import android.widget.SearchView; 更改为:

import androidx.appcompat.widget.SearchView;
<item android:id="@+id/search"
      android:title="@string/search_title"
      android:icon="@drawable/ic_search_white_24dp"
      app:showAsAction="collapseActionView|ifRoom"
      app:actionViewClass="androidx.appcompat.widget.SearchView"/>

最后一行 - 你需要告诉它你正在使用 Searchview 的 androidx 版本

   <item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    app:showAsAction="always"
    android:title="Search"
    app:actionViewClass="android.widget.SearchView" />

更改您的导入或将您的 actionView 类更改为 android.widget.SearchView。

只是改变

app:actionViewClass="android.widget.SearchView"

app:actionViewClass="androidx.appcompat.widget.SearchView"