Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoClassDefFoundError:java.awt.Point_Java_Android_Android Studio_Jar_Libgdx - Fatal编程技术网

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

我正在使用Android Studio为Android设备开发基于LibGDX的游戏。我已经从java.awt.Point导入了“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]);

这是因为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()。如果您想做更多的选择而不仅仅是存储两个整数值,请使用此选项。

包含更多代码可能有助于找出问题所在。