升级到Android SDK 2.3和ADT 8.0后,“无法获取项目的系统库”

64
今天我升级了Android SDK 2.3,也升级了Eclipse插件Androi Developer Tools 8.0(从0.9.9升级)。 我还将我的Java开发工具包升级到1.6_22。
现在,在Eclipse中,我所有的Android项目都出现了许多错误。
这些错误信息如下:
报错信息:“类型java.lang.Object无法解析。 它是从所需的.class文件间接引用的。”
我该如何修复这个问题,以便我可以继续使用我的Android项目?
在这些项目的构建路径中,我没有任何对android.jar的引用,只有一条消息:
“无法获取项目的系统库”。
26个回答

69

对我来说,问题是在项目设置中的“Android”选项卡中,我没有选择任何 Android 版本。


1
对我来说也是一样,但是在Android中选择版本后重新打开偏好设置时会自动取消选择。 - Thomas Ahle
2
这个设置在我的Eclipse版本中位于“项目/属性”下而不是“设置”下。对我来说,方案是将Android 4.3 Build Target从未选中改为已选中,这样做对我很有效,但我不明白为什么它会被取消选中——项目之前一直运行良好,似乎没有任何重大更改就停止工作了。 - Andrew
我已经选择了一个目标,从我安装的三个中选择了一个不同的,然后应用了,接着又选择了原来的那个并应用了。然后构建。这对我有用。就像Iker Martin的回答一样。 - n611x007
在我的Android 6.0上也起作用了。 - Neeraj Krishna

41

鉴于你提供的信息有限,这个问题比较难回答。以下是一些建议:

  • 确保在您的构建路径中有适当的android.jar,因为那里是java.lang.Object的来源。

  • 进行项目 > 清理操作,以确保您拥有1.6 .class文件,以防这是问题的一部分。

  • 尝试从头开始创建一个新项目,看看是否可以解决这个问题。


android.jar 似乎在我的构建路径中。我已经尝试过使用 Clean,但没有帮助。当我创建新项目时,我会得到相同的错误。 - Jonas
如果我在项目的属性中查看“Java Build Path”,会出现一条消息:“无法获取项目的系统库”。我认为这就是问题所在,但我不知道该如何解决。 - Jonas
14
进入“窗口” > “首选项” > “Android”,确保您的SDK仍然配置了适当的目录。 - CommonsWare
36
如果你的项目配置为某个系统目标,而你的系统中已经没有该目标(例如,在升级过程中删除了该目标),那么你可能会遇到这种情况。在项目属性对话框中,进入 Android 区域,确保你选择了一个有效的目标。请注意,不要改变原文的意思。 - CommonsWare
4
我曾遇到过同样的问题,而我通过@CommonsWare的评论(第三个)解决了它。 - Thiago Cardoso
显示剩余5条评论

27

我即使选择了一个有效的目标,也遇到了这个问题。 我通过更改为另一个目标,应用更改,然后再改回来来解决它。 这似乎已经解决了问题。


是的,这实际上重新创建了我的Java Build Path中(在我的情况下)Android 2.2的条目,在我安装了许多项目后被替换为“无法获取项目的系统库”。现在一切都像以前一样正常工作。 - Carl

21

项目->属性->Android: 选择另一个Android目标(在我的情况下是Android 4.0.3) -> 应用更改。然后再次选择默认的Android目标,这就是所有要做的事情。

希望这可以帮助到您。


谢谢,它可以工作了。不知怎么的,它丢失了到android.jar的路径,只需取消选中并重新选中,它就会工作。 - zungnv

3

这个问题是由于我的旧项目在一台没有安装旧版Android SDK的新机器上引起的。

为了解决这个问题,只需进入项目属性文件(project.properties),查看旧版本号:

# Project target.
target=Google Inc.:Google APIs:3

只需更新版本号,如下:

# Project target.
target=Google Inc.:Google APIs:7

你会发现Eclipse会选择正确的SDK版本并开始工作。

对我有用。该项目引用了SDK 9(但没有安装)。当我在UI中编辑Android版本时,复选框不会保持选中状态。编辑project.properties可以解决问题,并允许我选择正确的SDK版本。 - Robin Davies

3
无需从头开始创建新项目。如果“修复项目属性”或“添加库> Android类路径容器”无法解决问题,则可能在您的项目文件夹根目录中缺少“project.properties”文件。添加该文件并在项目属性中设置Android目标,重新添加Android库,再次修复项目属性,Android系统库现在应该包含在您的项目中。重新构建,然后您就可以开始使用了!
根据我的个人经验,这种情况经常发生,因此需要自我记录。
Eclipse Helios SR2
Android SDK R.20
Android NDK R8b
OSX 10.7.4

2
在我的情况下,问题与属性>android>library中缺少的库路径有关。我清除并重新输入了project.properties文件中的库路径。

2

我遇到了与原问题完全相同的问题! 除了关闭我的项目/Eclipse,我什么也没做,重新打开后惊讶地发现了所有错误。

在我的情况下,我只需要改变/切换工作区就可以解决问题了。 o_O 当我重新选择我的原始工作区时,我发现一切都恢复正常了!


我也只是关闭然后重新打开了项目,然后一切都正常了。 - Kristy Welsh

1
另一个可能的解释是Eclipse忘记了它的Android插件。如果您像我一样切换工作区,这种情况就会发生。我尝试重新导入一个现有的Android项目,但它找不到基本的Java系统库,因为它指向标准的Android JAR文件。重新安装Android插件(Help->Eclipse Marketplace,然后搜索“Android”,选择“Eclipse的Android开发工具”)可以解决这个问题。

1
在我的情况下,ADT需要更新(在Eclipse菜单中选择 Help/Check for Updates 或 Help/Install New Software)。请检查您的ADT!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接