我最近完成了我的第一个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是在API9级引入的。
但是我的项目针对的是API level 3,这段代码到底是如何编译的呢?为什么这以运行时错误而不是编译时错误而告终?
还有什么黑暗的惊喜在等着我呢?这意味着我必须测试游戏中的每一个可能的场景,以查找其他类似的错误;我认为这就是编译器所做的--查找编译时错误。
这怎么会变成一个运行时错误呢?如何在编译时而不是运行时发现类似的错误?
发布于 2012-03-19 19:04:08
一些libGDX项目中并没有真正的游戏代码。这就是API调用不会触发失败的原因。如果这是您的情况,您需要将代码移动到实际的android项目中,而不仅仅是将其链接到非android项目。
发布于 2012-03-19 00:33:35
您必须在“Android properties”中将项目的生成目标至少设置为API级别9,才能成功编译。也许你的清单中只有一行<uses-sdk android:minSdkVersion="3" />代码,我一直将其解释为“可以在上面运行,但不能保证”。在构建路径中将构建目标设置为级别3,你应该会得到一个错误标记。
https://stackoverflow.com/questions/9759802
复制相似问题