java.lang.NoClassDefFoundError:java.awt.Point

时间:2015-07-28 14:35:56

标签: java android android-studio jar libgdx

我正在使用Android Studio为Android设备开发基于LibGDX的游戏。我已经导入了" Point"来自java.awt.Point。我使用DesktopLauncher测试了它。它工作正常。

问题:当我在Android设备中加载它时,我收到错误" java.lang.NoClassDefFoundError:java.awt.Point"当我到达下面的行。请告知如何解决这个问题。

            Point p=new  Point(toyCells[i][0] + toyCellsAdjecentCells[j][0],
                               toyCells[i][1] + toyCellsAdjecentCells[j][1]);

3 个答案:

答案 0 :(得分:4)

这是因为Android不支持awt(或Swing)。这些是在开发计算机应用程序时使用的图形库。尝试使用

android.graphics.Point

代替。

答案 1 :(得分:1)

你不应该使用com.badlogic.gdx.math.GridPoint2D代替java.awt.Point吗?

答案 2 :(得分:1)

milez有正确的答案。 Android没有您用于DesktopLauncher的Point类。

但是,您应该注意一件事:LibGDX应该以与设备无关的方式工作。这意味着代码不应要求在设备之间进行更改。因此,您需要找到与设备无关的解决方案。

您有两种选择:

您可以创建自己的MyPoint类,其中包含X和Y整数字段。这非常简单,并且几乎没有开销。

你也可以使用类似Point的类LibGDX提供名为Vector2的。保证本课程适用于所有设备:

Vector2 point = new Vector2(x, y);

对于这个选项,调用point.x将为你提供你传入的任何X的浮点表示。但是如果你想在数组中使用它,那么这个浮点值必须被转换为一个整数。

my_x = my_array[(int) point.x];

它还为您提供了一些有用的数学选项,如translate(dx,dy)或angle()。如果您有兴趣做更多选项而不仅仅是存储两个整数值,请使用此选项。