2012-01-27 27 views
9

Tôi chưa bao giờ thực hiện một chương trình thành một tệp thực thi trước đây và tôi đã xem xét cách thực hiện điều này một thời gian. Khi tôi cố gắng đặt nó vào một cái lọ, mọi thứ đều hoạt động tốt nhưng khi tôi cố gắng chạy nó thì không có gì xảy ra cả.Làm thế nào để thực thi một trò chơi LIBGDX của tôi

Làm cách nào để làm cho trò chơi của mình trở thành một tệp thực thi (trên cửa sổ, không phải android) Tôi cảm thấy mình không liên kết nó với thư viện hay gì đó ... Không chắc chắn. Cảm ơn!

Edit: tôi nên thêm tôi nhận được lỗi

JAR export finished with warnings. See details for additional information. 
duplicate entry: com/badlogic/gdx/utils/arial-15.fnt 
duplicate entry: com/badlogic/gdx/utils/arial-15.fnt 
duplicate entry: com/badlogic/gdx/utils/arial-15.png 
duplicate entry: com/badlogic/gdx/utils/arial-15.png 
Jar export finished with problems. 
See details for additional information. 
+0

Để rõ ràng bạn đang tìm cách xây dựng một tệp thực thi cho những người khác chạy trên Windows? Hoặc trên thiết bị Android của họ? (Hoặc trên máy Mac?) –

+0

Tôi đã tìm ra cách xuất APK và làm cho nó hoạt động trên các thiết bị Android và nó hoạt động rất tốt. Nhưng bạn đúng, tôi đang cố gắng làm cho nó hoạt động trên các cửa sổ. Tôi vẫn chưa tìm ra. –

+0

FWIW, tôi cũng nhận được một loạt cảnh báo 'trùng lặp nhập'. Tuy nhiên, chúng cho các lớp khác nhau. Bạn nên kiểm tra tệp .jar kết quả (ví dụ: với winzip hoặc 7zip) và thấy tệp chứa tệp lớp của bạn và tệp META-INF \ MANIFEST.MF tham chiếu đúng "Main-Class". Cấp cao nhất của .jar cũng phải có nhiều thư viện trong đó (ví dụ: gdx.dll và libgdx.so, v.v.). –

Trả lời

7

Vấn đề của bạn là khi bạn sử dụng xuất nhật thực như tệp jar thực thi không bao gồm nội dung (đồ họa, âm thanh ...) mà bạn đã sử dụng trong dự án gdx của mình. Những gì bạn có thể làm bằng tay là sao chép thư mục tài sản của bạn ngay bên cạnh tệp jar được tạo hoặc bao gồm thư mục nội dung trong tệp jar của bạn bằng công cụ quản lý zip yêu thích của bạn.

Một cách khác là sử dụng thuật sĩ xuất nhật thực này và kiểm tra "Lưu dưới dạng tập lệnh ANT" và sau đó chỉnh sửa tệp kiến ​​tạo được tạo để bao gồm tất cả các tệp và thư mục mà ứng dụng của bạn cần.

Hope this helps

+0

nhờ điều này giải quyết vấn đề mi – Yayo28

+0

Đây là giải pháp. Đã làm việc kể từ khi tôi đã làm như đã nói ở đây. Cảm ơn! –

5

Tôi giả định ứng dụng của bạn là setup as the libgdx wiki page suggests (với một "dự án chính" và "desktop" riêng biệt và các dự án "android" chia sẻ các nguồn từ dự án "chính").

Vì ứng dụng của bạn được viết bằng Java, nó yêu cầu JVM chạy trên máy tính để bàn. Bạn phải quyết định xem bạn có muốn gói nó lên hay dựa vào một JVM đã được người dùng cài đặt. Tôi tin rằng việc đóng gói các JVM với các tệp lớp Java là rất phức tạp và làm tăng một loạt các vấn đề khác (và nó trở nên rất cụ thể về nền tảng). Vì vậy, tôi tin rằng hầu hết các trò chơi dựa trên libgdx được phân phối dưới dạng tệp Jar thực thi, có nghĩa là người dùng phải có Java. (Nó hoạt động cho Minecraft, vì vậy nó có thể đủ tốt cho bạn. :)

Eclipse làm cho điều đó thật dễ dàng: File -> Export ... -> Java -> Executable Jar File. Có thể cần các bước bổ sung để bao gồm các nội dung như hình ảnh và âm thanh của ứng dụng vào tệp .jar này. (Trò chơi của tôi hiện là "nội dung miễn phí", vì vậy tôi không có bất kỳ trải nghiệm nào với phần này.)

Bạn cũng có thể cân nhắc việc thực hiện bước trên màn hình và đóng gói trò chơi của mình dưới dạng applet và chạy nó trong trình duyệt web để có rất ít "cài đặt" theo yêu cầu của những người bạn muốn hiển thị nó. Đây là walkthrough for making an applet from a libgdx-based game. (Tôi chưa thực sự thử bản thân này, nhưng tôi có một trò chơi dựa trên libgdx mà tôi đang lên kế hoạch để thực hiện việc này.)

+0

Cảm ơn bạn rất nhiều vì câu trả lời của bạn! Khi tôi thử những gì bạn đã gợi ý, nó sẽ mở ra một cửa sổ trắng trống. Tôi đi, Tệp >> Xuất >> Tệp JAR Runnable và tôi đã thử "Giải nén thư viện cần thiết vào tùy chọn tạo JAR" và "thư viện yêu cầu gói vào JAR được tạo" cả hai cùng với kết quả (không hoạt động). Bây giờ là gì? –

+0

Ngoài ra, khi tôi cố gắng thêm theo dõi com.badlogic.gdx.backends.lwjgl.LwjglApplication Eclipse không thấy nó tồn tại. Có thể tôi chỉ không có LibGDX làm việc đúng cách hoặc một cái gì đó dài dòng? Trò chơi của tôi chạy tốt ... –

+0

Bạn đã chọn "đích xuất" chưa? Đó là cách mà Eclipse yêu cầu về tên của tệp .jar mà Eclipse tạo ra. Tôi vừa tạo một tệp .jar từ ứng dụng của mình và không có sự cố ... hmmm ... Tôi đang sử dụng phần phụ trợ jogl, chứ không phải lwjgl.Nhưng tôi nghi ngờ rằng nên tạo ra nhiều sự khác biệt. –

6

Đây là một câu hỏi cũ, nhưng nếu bạn đang sử dụng một phiên bản mới của LibGDX và Gradle bạn có thể sử dụng dòng lệnh để thực hiện một thực thi.

Có một số lệnh, nhưng đây là những bao bì:

Desktop

gradlew desktop:dist 

Android (unsigned)

gradlew android:assembleRelease 

iOS

gradlew ios:createIPA 

Web

gradlew html:dist 

Đọc thêm tại https://github.com/libgdx/libgdx/wiki/Gradle-on-the-Commandline

+0

Hoạt động hoàn hảo :-) –

+0

Để phân phối máy tính để bàn "gradlew desktop: dist" tạo .jar nhưng không hoạt động nếu không bị bỏ trong thư mục nội dung. Tôi tự hỏi nếu đây là một vấn đề với một bản cập nhật gradle? – FoxDonut

1

Nếu bạn đang sử dụng Android Studio, bạn có thể tạo một cấu hình tùy chỉnh để phân phối từ bên trong chương trình.

Trên danh sách thả xuống Chạy, hãy chọn chỉnh sửa cấu hình.

Nhấp vào dấu "+". Chọn Gradle.

Ở nửa bên phải của màn hình đó đặt tên cho cấu hình của bạn.

Dự án Gradle: Sử dụng nút duyệt để chọn ứng dụng dành cho máy tính để bàn của bạn. Tên này sẽ trông giống như (tên dự án): máy tính để bàn

Công việc: nhập "máy tính để bàn: dist"

Áp dụng.

Đóng trình chỉnh sửa cấu hình và chọn cấu hình mới của bạn từ trình đơn thả xuống. Lượt chạy và nó sẽ xây dựng dự án của bạn.

Tệp Jar mới của bạn phải được đặt trong (ProjectName)/desktop/build/libs

+0

Cảm ơn bạn rất nhiều vì ** (ProjectName)/desktop/build/libs **. Thông thường nó tạo ra một tập tin nhỏ, nhưng một khi tôi biên dịch nó thông qua cmd nó đã làm việc! – Soley

Các vấn đề liên quan