Java 找不到类';android.support.v7.widget.SearchView$5';
我在y Logcat中得到这个错误。 有人知道这是什么吗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 这里没有太多代码可
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安装目录,然后浏览到支持 图书馆文件夹。例如,如果要添加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: