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

时间:2019-08-13 19:24:29

标签: android androidx

以下错误阻止应用启动:

  

E / Android运行时:致命异常:主要       流程:com.example.app,PID:5513       java.lang.ClassCastException:androidx.appcompat.widget.SearchView无法转换为android.widget.SearchView           在com.example.app.MainActivity.onCreateOptionsMenu(MainActivity.java:169)           在android.app.Activity.onCreatePanelMenu(Activity.java:3481)           在androidx.fragment.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:325)           在androidx.appcompat.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:94)           在androidx.appcompat.app.AppCompatDelegateImpl $ AppCompatWindowCallback.onCreatePanelMenu(AppCompatDelegateImpl.java:2820)           在androidx.appcompat.app.AppCompatDelegateImpl.preparePanel(AppCompatDelegateImpl.java:1736)           在androidx.appcompat.app.AppCompatDelegateImpl.doInvalidatePanelMenu(AppCompatDelegateImpl.java:2016)           在androidx.appcompat.app.AppCompatDelegateImpl $ 2.run(AppCompatDelegateImpl.java:253)           在android.os.Handler.handleCallback(Handler.java:873)           在android.os.Handler.dispatchMessage(Handler.java:99)           在android.os.Looper.loop(Looper.java:193)           在android.app.ActivityThread.main(ActivityThread.java:6669)           在java.lang.reflect.Method.invoke(本机方法)           在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)           在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

4 个答案:

答案 0 :(得分:6)

<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版本

答案 1 :(得分:1)

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

因此,您只需要将import android.widget.SearchView;更改为:

import androidx.appcompat.widget.SearchView;

答案 2 :(得分:1)

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

更改导入或将actionViewclass更改为android.widget.SearchView。

答案 3 :(得分:0)

只是改变

app:actionViewClass="android.widget.SearchView"

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