首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >androidx.appcompat.widget.SearchView setSearchableInfo()在某些设备上抛出参考资料$NotFoundException

androidx.appcompat.widget.SearchView setSearchableInfo()在某些设备上抛出参考资料$NotFoundException
EN

Stack Overflow用户
提问于 2019-11-01 10:53:00
回答 1查看 179关注 0票数 2

我注意到报告日志中有几个异常,我不知道问题的原因是什么:

代码语言:javascript
运行
复制
android.content.res.Resources$NotFoundException: 
  at android.content.res.Resources.getText (Resources.java:363)
  at android.content.Context.getText (Context.java:567)
  at androidx.appcompat.widget.SearchView.getQueryHint (SearchView.java:622)
  at androidx.appcompat.widget.SearchView.updateQueryHint (SearchView.java:1102)
  at androidx.appcompat.widget.SearchView.setSearchableInfo (SearchView.java:409)
  at com.myApp.MainActivity.onCreateOptionsMenu (MainActivity.java:161)
  at android.app.Activity.onCreatePanelMenu (Activity.java:3575)
  at androidx.fragment.app.FragmentActivity.onCreatePanelMenu (FragmentActivity.java:325)
  at androidx.appcompat.view.WindowCallbackWrapper.onCreatePanelMenu (WindowCallbackWrapper.java:94)
  at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.onCreatePanelMenu (AppCompatDelegateImpl.java:2830)
  at androidx.appcompat.view.WindowCallbackWrapper.onCreatePanelMenu (WindowCallbackWrapper.java:94)
  at androidx.appcompat.app.ToolbarActionBar.populateOptionsMenu (ToolbarActionBar.java:455)
  at androidx.appcompat.app.ToolbarActionBar$1.run (ToolbarActionBar.java:56)
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:949)
  at android.view.Choreographer.doCallbacks (Choreographer.java:761)
  at android.view.Choreographer.doFrame (Choreographer.java:693)
  at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:935)
  at android.os.Handler.handleCallback (Handler.java:873)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:214)
  at android.app.ActivityThread.main (ActivityThread.java:7094)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:975)

MainActivity.java

代码语言:javascript
运行
复制
public class MainActivity extends AppCompatActivity {
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_activity_actions, menu);
        mainMenu = menu;
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        MenuItem searchItem = menu.findItem(R.id.action_search);
        searchView = (SearchView) searchItem.getActionView();
        if(searchManager != null) {
            searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        }
        return super.onCreateOptionsMenu(menu);
    }
}

R.menu.main_activity_actions.xml看起来就像

代码语言:javascript
运行
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_search"
          android:title="@string/search"
          android:icon="@drawable/ic_search_white"
          android:orderInCategory="1"
          app:showAsAction="ifRoom|collapseActionView"
          app:actionViewClass="androidx.appcompat.widget.SearchView"/>
</menu>

抛出异常的设备是三星Galaxy J6+ (Android9)小米Redmi 6A (Android 9)

我不知道哪个解决方案是正确的,因为我试图重复这个问题,但无法做到。这种例外情况很少出现。它是在迁移到AndroidX之后开始的。

EN

回答 1

Stack Overflow用户

发布于 2020-10-12 21:35:08

代码语言:javascript
运行
复制
    <item
    android:id="@+id/search_menu"
    android:icon="@drawable/ic_action_search"
    android:orderInCategory="101"
    android:title="@string/search_text"
    app:showAsAction="ifRoom"
    app:actionViewClass="androidx.appcompat.widget.SearchView"/>

雄激素app:actionViewClass="androidx.appcompat.widget.SearchView"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58657982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档