API方法9在API方法3中编译Android项目,运行时错误

时间:2012-03-18 16:05:48

标签: android libgdx

我最近完成了我的第一款Android游戏。在Eclipse中制作,android属性只有Android 1.5的目标平台(API级别3)。

在我的代码中,我打电话给:

LinkedList<String> x = new LinkedList<String>();
// ...
x.pop(); // error

我可以编译我的代码并在我的项目的桌面版本上运行它。 android项目也编译;但是当我将它部署到我的手机时,DDMS向我显示了no such method pop exists.

效果的运行时错误

这是因为{9}引入了API级别9,这是我能理解的。

但我的项目目标是API级别3.这段代码是如何实际编译的?为什么这最终是运行时错误而不是编译时错误?

潜伏着等待我的其他黑暗惊喜?这意味着我必须在我的游戏中测试每个可能的场景,以找到这样的其他错误;我认为这就是编译器所做的 - 找到编译时错误。

这是如何成为运行时错误的?如何在编译时而不是在运行时找到类似的错误?

2 个答案:

答案 0 :(得分:1)

您必须将项目的“Android属性”中的构建目标设置为至少API级别9才能成功编译。也许你的清单只有一个  <uses-sdk android:minSdkVersion="3" />行中的{{1}}行,我总是将其解释为'好吧,应该可以运行此但不能保证“。在构建路径中将构建目标设置为3级并且应该得到错误标记

答案 1 :(得分:1)

某些libGDX项目在Android项目中没有实际的游戏代码。这就是API调用不会触发失败的原因。如果那是你的情况,你需要将代码移动到实际的android项目中,而不仅仅是将它链接到非android项目。