java 安卓supportv4。jar在Eclipse中未正确导入
我正在尝试编译一个应用程序,它使用它包含的安卓-support-v4.jar
和Fragmentation
类,但是每当我尝试编译代码时,我总是收到消息说代码中有错误。所有错误都与.JAR
中的不同Fragmentation
类有关。我已尝试ctrl-clicking
项目文件夹,然后选择Android Tools -> Add Compatibility Library
,我一直收到以下错误:
[2011-12-20 11:55:31 - Android Compatibility JAR not found:]
/Applications/eclipse/Eclipse.app/Contents/MacOS/v4/安卓-support-v4.jar
为什么它要在Eclipse的包内容中寻找.JAR
?我进入了项目属性,进入了Java构建路径,从MainActivity/libs
文件夹导入了.JAR
,但不起作用,然后我尝试从SDK目录导入它,但没有起作用。我修复了项目属性,清理并构建了无数次,重新启动了Eclipse、我的计算机,重新下载并安装了Eclipse、Android SDK和ADT,但仍然一无所获。我完全被难住了
编辑
我已经完成了构建路径并导入了。来自MainActivity/libs
和我的SDK目录的JAR。该死的,我加了一个。JAR在目录中,它一直出现在错误中,但不起作用。是什么让Eclipse在其应用程序包内容中寻找它
更新
因此,在修补项目内容后,没有显示任何错误,但MainActivity文件夹仍然说有一个错误,我仍然无法编译
像nyah:
修改
因此,我认为问题可能是“为什么Eclipse在Eclipse应用程序的包内容中寻找.JAR,而不是项目的libs
目录或我用来将其作为外部.JAR导入的Android SDK目录?”
更新#2
经过修补,我现在只得到一个错误,它是在这个方法上:
@Override
public MenuItem setOnActionExpandListener(OnActionExpandListener onActionExpandListener) {
// Noop
return this;
}
快速修复说我应该删除@Override注释,但该方法必须重写一个超类方法
以下是它显示的错误:
Multiple markers at this line
- The method setOnActionExpandListener(MenuItem.OnActionExpandListener) of type SimpleMenuItem must override a superclass method
- implements 安卓.view.MenuItem.setOnActionExpandListener
# 1 楼答案
看起来它在这里寻找jar:/Applications/eclipse/eclipse。app/Contents/MacOS/v4/android-support-v4。罐子
android-support-v4。罐子在<;sdk>/附加功能/android/compatibility/v4
请确保将其作为外部jar添加到java构建路径中
# 2 楼答案
我在Ubuntu上运行时也遇到了同样的问题。转到工具->;选项。 制衡力量https://...到http:// 打开Android SDK管理器。检查附加功能->;Android支持库
# 3 楼答案
事实证明,我的调试证书已经过期,所以我只需要删除
~/.android/debug.keystore
并重新启动Eclipse,一切正常# 4 楼答案
我可以通过 1.从lib中删除“android-support-v4.jar” 2.右键点击项目名称,选择“Android工具”和“添加支持库”
# 5 楼答案
我意识到这个问题已经得到了回答,但根据这里的评论9,这是一个已知的问题,应该在ADT-17插件版本中修复:http://code.google.com/p/android/issues/detail?id=21488
此外,有这个问题的人可以将兼容性JAR复制到它说找不到的位置。很明显,它找错了地方(因为它检查的是Eclipse目录,而不是android sdk目录),所以现在简单的修复方法就是将包放在它想找到的地方,即使它不属于这个目录
对我来说,这就像将C:/android sdk/extras/android/support/中的v4目录复制到C:/eclipse/目录一样简单
# 6 楼答案
如果问题仍未解决: 如前所述,在Eclipse中转到您的项目属性>;Java构建路径>;Libs>;添加外部并从adk目录中获取一个
如果还没有,也可以将Java 1.6设置为默认编译版本。这应该可以解决您描述的覆盖错误