android-support-v4.jar在Eclipse中无法正确导入

时间:2011-12-20 18:07:19

标签: java android jar compatibility android-support-library

我正在尝试使用它包含的android-support-v4.jarFragmentation类来编译应用程序,但每当我尝试编译代码中存在错误时,我会不断收到消息。所有错误都与Fragmentation中的不同.JAR类有关。我已尝试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/android-support-v4.jar

为什么要在Eclipse的包内容中寻找.JAR?我已经进入项目属性并转到Java Build Path,并从.JAR文件夹中导入了MainActivity/libs,但是我尝试从我的SDK目录中导入它,那没用。我修复了项目属性并清理并构建了无数次,我重新启动了Eclipse,我的计算机,重新下载并安装了Eclipse,Android SDK和ADT,但仍然没有。我完全被难倒了。


修改


我已经完成了构建路径,并从MainActivity/libs和我的SDK目录中导入了.JAR。对于它的地狱,我在目录中添加了.JAR,它一直出现在错误中并且没有工作。是什么让Eclipse在它的应用程序包内容中找到它?


更新


因此,在修改项目内容后没有显示任何错误,但MainActivity文件夹仍然说有一个,我仍然无法编译。

喜欢nyah:

enter image description here


修订


所以我认为问题可能是“为什么Eclipse在Eclipse应用程序的包内容中寻找.JAR而不是项目的libs目录或我用来导入它的Android SDK目录外部.JAR?“


更新#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 android.view.MenuItem.setOnActionExpandListener

12 个答案:

答案 0 :(得分:19)

看起来它在这里寻找jar:/Applications/eclipse/Eclipse.app/Contents/MacOS/v4/android-support-v4.jar

android-support-v4.jar位于< sdk> / extras / android / compatibility / v4

请确保在java构建路径中将其添加为外部jar

答案 1 :(得分:12)

我可以解决这个问题 1-从lib中删除“android-support-v4.jar” 2-右键单击项目名称,选择“Android工具”和“添加支持库”

答案 2 :(得分:4)

如果仍未解决: 就像已经说过的那样,在Eclipse中转到Project Properties> Java构建路径> Libs>添加外部并从adk目录中获取一个。

如果您还没有将Java 1.6设置为默认编译版本。这应解决您描述的覆盖错误。

答案 3 :(得分:2)

事实证明我的调试证书已经过期,因此我只需要删除~/.android/debug.keystore并重新启动Eclipse,一切正常。

答案 4 :(得分:1)

我意识到这个问题已得到解答,但这是一个已知的问题,应该根据评论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 /目录一样简单。

答案 5 :(得分:1)

我在Ubuntu中遇到了同样的问题。转到工具 - >选项。 检查强制https:// ...到http:// 打开Android SDK Manager。检查附加功能 - > Android支持库。

答案 6 :(得分:1)

类似的事发生在我身上。在MainActivity.java的顶部,我有下一个导入错误:

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

在左边的每一行中,他们都有灯泡提出一些建议。如果单击它,其中一个选项将是“修复项目设置”。然后,您可以在几个修复导入的选项中进行选择,您应该选择指定android-support-v4.jar的选项。

答案 7 :(得分:1)

右键点击您的项目 - >选择android工具 - >选择添加支持库并简单地安装支持库。

答案 8 :(得分:0)

你是否尝试不做Android工具 - >添加兼容性库,只在java构建路径库中添加jar?。

我以这种方式使用这个jar库,它没有任何问题。

答案 9 :(得分:0)

另一个警告是在没有管理员权限的情况下在Windows 7中运行Android SDK Manager。它会尝试安装支持包,但总是会失败,实际的包永远不会下载到

  

C:\ Program Files(x86)\ Android \ android-sdk \ extras \ android \ support \ v4 \ android-support-v4.jar

答案 10 :(得分:0)

我遇到了同样的问题。

在项目属性:Java Build Path:Order and Export选项卡下,未检查android-support-v4.jar旁边的框。我检查了这个方框,错误就消失了。

答案 11 :(得分:0)

解决方案:确保在Android项目创建期间(或在创建的清单文件中)为“Target SDK”和“Compile with”输入相同的API。