簡體   English   中英

java.lang.NoClassDefFoundError:java.awt.Point

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM