API方法9编译API方法3安卓项目,运行时错误



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

在我的代码中,我调用了:

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

我可以编译我的代码并在我的项目的桌面版本上运行它。android项目也进行编译;但是当我把它部署到我的手机上时,DDMS向我显示了一个运行时错误,其效果相当于no such method pop exists.

据我所知,这是因为pop是在API 9级中引入的。

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

还有什么黑暗的惊喜在等着我?这意味着我必须测试游戏中的每一个可能的场景,以发现其他类似的错误;我认为这就是编译器所做的--查找编译时错误。

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

您必须在"Android属性"中将项目的构建目标设置为至少API 9级才能成功编译。也许你的清单上有<uses-sdk android:minSdkVersion="3" />行,我一直认为这意味着"运行这个应该没问题,但没有保证"。在构建路径中将您的构建目标设置为级别3,您应该会得到一个错误标记。

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

最新更新