java.lang.NoClassDefFoundError:java.awt.Point
我正在使用Android Studio为Android设备开发基于LibGDX的游戏。我已经从java.awt.Point导入了“Point”。我已经用DesktopLauncher测试过了。它很好用 问题:当我将其加载到Android设备中时,当我到达下一行时,会出现错误“java.lang.NoClassDefFoundError:java.awt.Point”。请就如何解决这个问题提出建议java.lang.NoClassDefFoundError:java.awt.Point,java,android,android-studio,jar,libgdx,Java,Android,Android Studio,Jar,Libgdx,我正在使用Android Studio为Android设备开发基于LibGDX的游戏。我已经从java.awt.Point导入了“Point”。我已经用DesktopLauncher测试过了。它很好用 问题:当我将其加载到Android设备中时,当我到达下一行时,会出现错误“java.lang.NoClassDefFoundError:java.awt.Point”。请就如何解决这个问题提出建议 Point p=new Point(toyCells[i][0] + to
Point p=new Point(toyCells[i][0] + toyCellsAdjecentCells[j][0],
toyCells[i][1] + toyCellsAdjecentCells[j][1]);
这是因为Android不支持
awt
(或Swing
)。这些是开发计算机应用程序时使用的图形库。尝试使用
android.graphics.Point
相反。你不应该使用
com.badlogic.gdx.math.GridPoint2D
而不是java.awt.Point
?米雷斯有正确的答案。Android没有用于DesktopLauncher的Point类
但是,有一点您应该注意:LibGDX应该以独立于设备的方式工作。这意味着代码不需要在设备之间进行更改。因此,您需要找到一个独立于设备的解决方案
您有两个选择:
您可以创建自己的MyPoint类,其中包含一个X和Y整数字段。这很简单,几乎没有开销
您还可以使用LibGDX提供的类似点的类Vector2。该类产品保证适用于所有设备:
Vector2 point = new Vector2(x, y);
对于这个选项,calling point.x将为您传递的x提供浮点表示。但是,如果要在数组中使用此浮点值,则必须将其强制转换为整数
my_x = my_array[(int) point.x];
它还提供了一些有用的数学选项,如translate(dx,dy)或angle()。如果您想做更多的选择而不仅仅是存储两个整数值,请使用此选项。包含更多代码可能有助于找出问题所在。