Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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 找不到类';android.support.v7.widget.SearchView$5';_Java_Android_Android Logcat - Fatal编程技术网

Java 找不到类';android.support.v7.widget.SearchView$5';

Java 找不到类';android.support.v7.widget.SearchView$5';,java,android,android-logcat,Java,Android,Android Logcat,我在y Logcat中得到这个错误。 有人知道这是什么吗 08-22 19:02:57.830: E/dalvikvm(660): Could not find class 'android.support.v7.widget.SearchView$5', referenced from method android.support.v7.widget.SearchView.addOnLayoutChangeListenerToDropDownAnchorSDK11 这里没有太多代码可

我在y Logcat中得到这个错误。 有人知道这是什么吗

    08-22 19:02:57.830: E/dalvikvm(660): Could not find class 'android.support.v7.widget.SearchView$5', referenced from method android.support.v7.widget.SearchView.addOnLayoutChangeListenerToDropDownAnchorSDK11

这里没有太多代码可供编写,但我自己也遇到了这种情况,下面是发生在我身上的事情:

我使用v7 compat库是为了在Android 2上有一个ActionBar 我正在实现搜索界面的东西

基本设置代码(在onCreateOptions菜单()中)

错误代码

searchMenuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
        // on search expand stuff
        return true;
    }

    @Override
    public boolean onMenuItemActionCollapse(MenuItem item) {
        // on search collapse stuff
        return true;
    }
});
searchMenuItem.setSupportOnActionExpandListener(new MenuItemCompat.OnActionExpandListener() {
    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
        // do work
        return true;
    }

    @Override
    public boolean onMenuItemActionCollapse(MenuItem item) {
        // do work
        return true;
    }
});
不幸的是,这里的问题是,我们正在调用一个仅在v14中受支持的方法,因此当它尝试加载一些隐式使用的类时,会出现一个“奇怪”的运行时错误。这不是一个很好的解释,但基本上这也是我们需要使用
getSupportActionBar()
而不是
getActionBar()
的原因

好代码

searchMenuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
        // on search expand stuff
        return true;
    }

    @Override
    public boolean onMenuItemActionCollapse(MenuItem item) {
        // on search collapse stuff
        return true;
    }
});
searchMenuItem.setSupportOnActionExpandListener(new MenuItemCompat.OnActionExpandListener() {
    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
        // do work
        return true;
    }

    @Override
    public boolean onMenuItemActionCollapse(MenuItem item) {
        // do work
        return true;
    }
});

您需要确保在Eclipse中正确添加Android支持库,以从日志中删除以下错误“找不到从方法Android.Support.v7.widget.SearchView引用的类Android.Support.v7.widget.SearchView.AddOnlayOutChangeListenerToDropDownanchordK11”中的$5”

要记住的关键一点是,在添加支持库时不要忘记取消选中Android依赖项,因为v7 appcompat库有资源。在对支持库项目中的依赖项进行更改后,请清理支持库项目,就这样

请参阅官方Google doco一节中关于如何使用资源添加支持库的完整过程

摘自上述参考文件,以防将来链接发生变化:

  • 确保已使用下载的Android支持库 SDK管理器
  • 创建一个库项目并确保所需的JAR 文件包含在项目的生成路径中:
    • 选择文件>导入
    • 在工作区中选择现有的Android代码,然后单击下一步
    • 浏览到SDK安装目录,然后浏览到支持 图书馆文件夹。例如,如果要添加appcompat 项目,浏览到/extras/android/support/v7/appcompat/
    • 单击“完成”导入项目。对于v7 appcompat项目,您可以 现在应该看到一个名为android-support-v7-appcompat的新项目
    • 在新库项目中,展开libs/文件夹,在每个文件夹上单击鼠标右键 .jar文件,然后选择构建路径>添加到构建路径。例如 在创建v7 appcompat项目时,添加 android-support-v4.jar和android-support-v7-appcompat.jar文件 构建路径
    • 右键单击项目并选择生成路径>配置生成路径。在Order and Export选项卡中,检查刚刚添加到构建路径的.jar文件,以便它们可用于依赖于此库项目的项目。例如,appcompat项目要求您导出android-support-v4.jar和android-support-v7-appcompat.jar文件
    • 取消选中Android依赖项。
    • 单击“确定”完成更改

  • 您需要将缺少的支持库添加到项目中。 在Eclipse中:右键单击项目


    选择Android工具/添加支持库…

    它找不到该类。您的
    libs
    文件夹中是否有该库?是否添加了支持库v7?是的,我在库中有SearchView类,我导入了android-support-v7-appcompat库以添加actionbare pre API 11Yes,但我不明白为什么会出现这个错误我添加了android-support-v7-appcompat库我应该提到的东西,我使用的是android Studio(和IntelliJ),它给了我在这方面的编译错误。。。但它工作正常,运行良好。。。我向AndroidStudio提交了一个bug: