![](/img/trans.png)
[英]Java AWT in scala: (AWT-EventQueue-0) java.lang.NoClassDefFoundError
[英]java.lang.NoClassDefFoundError: java.awt.Point
我正在使用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
?
milez有正確的答案。 Android沒有用於DesktopLauncher的Point類。
但是,您應該注意一件事:LibGDX應該以與設備無關的方式工作。 這意味着代碼不需要在設備之間進行更改。 因此,您需要找到與設備無關的解決方案。
您有兩種選擇:
您可以創建自己的MyPoint類,其中包含X和Y整數字段。 這很簡單,幾乎沒有開銷。
您還可以使用類似點的類LibGDX提供的稱為Vector2的類。 此類可以在所有設備上使用:
Vector2 point = new Vector2(x, y);
對於此選項,調用point.x將為您提供傳入的X的浮點表示形式。但是,如果要在數組中使用它,則必須將該浮點值強制轉換為整數。
my_x = my_array[(int) point.x];
它還為您提供了一些有用的數學選項,例如translate(dx,dy)或angle()。 如果您有興趣做更多的選擇而不只是存儲兩個整數值,請使用此選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.