2012-01-27 8 views
9

Non ho mai creato un programma in un eseguibile prima e ho cercato come farlo da un po 'di tempo. Quando provo a metterlo in un barattolo tutto funziona bene ma quando provo a farlo non succede nulla.Come rendere un eseguibile fuori dal mio gioco LIBGDX

Come rendere il mio gioco un eseguibile in modo che possa essere eseguito (su Windows, non su Android) Mi sembra di non collegarlo alle librerie o qualcosa del genere ... Non sono sicuro. Grazie!

Edit: Vorrei aggiungere ottengo l'errore

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

Per essere chiari si sta cercando di costruire un eseguibile per le altre persone per funzionare su Windows? O sui loro dispositivi Android? (O su un Mac?) –

+0

Ho capito come esportare un APK e farlo funzionare su dispositivi Android e funziona benissimo. Ma tu hai ragione, sto cercando di farlo funzionare su Windows. Non l'ho ancora capito. –

+0

FWIW, ricevo anche una serie di avvisi di "immissione duplicata". Sono per classi diverse, però. Dovresti controllare il file .jar risultante (ad es. Con winzip o 7zip) e vedere che contiene i file di classe e che il file META-INF \ MANIFEST.MF fa riferimento alla "Main-class" corretta. Il livello principale di .jar dovrebbe avere anche molte librerie (ad es. Gdx.dll e libgdx.so, ecc.). –

risposta

7

Il tuo problema è che quando usi eclipse esporta come file jar eseguibile. non includere le risorse (grafica, suoni ...) che hai usato nel tuo progetto gdx. Quello che puoi fare manualmente è copiare la tua cartella delle risorse proprio accanto al file jar generato o includere la cartella delle risorse nel tuo file jar con il tuo strumento di gestione zip preferito.

Un altro modo sarebbe utilizzare la stessa procedura guidata di esportazione eclipse e selezionare "Salva come script ANT" e quindi modificare il file ant generato per includere tutti i file e le cartelle necessari all'app.

Spero che questo aiuti

+0

grazie a risolve mi problema – Yayo28

+0

Questa era la soluzione. Lavoro da quando ho fatto come detto qui. Grazie! –

5

sto assumendo la vostra applicazione è setup as the libgdx wiki page suggests (con un "progetto principale" e "desktop" separata e progetti "Android" che condividono le fonti dal progetto "principale").

Poiché l'app è scritta in Java, richiede una JVM per l'esecuzione su un desktop. Devi decidere se vuoi comprimerlo, o fare affidamento su una JVM già installata dall'utente. Credo che impacchettare la JVM con i file di classe Java sia molto complicato e sollevi una serie di altri problemi (e diventa molto specifico per la piattaforma). Quindi, credo che gran parte dei giochi basati su libgdx vengano distribuiti come un file Jar eseguibile, il che significa che l'utente deve già avere Java. (Funziona per Minecraft, quindi probabilmente è abbastanza buono anche per te :)

Eclipse lo rende davvero semplice: File -> Export ... -> Java -> Executable Jar File. Potrebbero essere necessari ulteriori passaggi per includere risorse come le immagini e i suoni della tua app in questo file .jar. (Il mio gioco è attualmente "privo di risorse", quindi non ho alcuna esperienza con questa parte.)

Si potrebbe anche prendere in considerazione l'esecuzione laterale del file eseguibile del desktop e impacchettare il gioco come un'applet e eseguirlo in un browser web quindi c'è pochissima "installazione" richiesta dalla gente a cui vuoi mostrarlo. Ecco uno walkthrough for making an applet from a libgdx-based game. (In realtà non ho ancora provato questo, ma ho un gioco basato su libgdx su cui sto pensando di farlo.)

+0

Grazie mille per la risposta! Quando provo ciò che hai suggerito, si aprirà una finestra bianca vuota. I go, File >> Esporta >> File JAR eseguibili e ho provato l'opzione "Estrai librerie richieste in JAR generato" e "librerie richieste pacchetto in JAR generato" entrambe con lo stesso risultato (non funzionante). Che ora? –

+0

Inoltre, quando provo ad aggiungere il seguente com.badlogic.gdx.backends.lwjgl.LwjglApplication Eclipse non vede che esiste. È possibile che io non abbia LibGDX che funzioni correttamente o qualcosa di troppo lungo? Il mio gioco funziona bene ... –

+0

Hai scelto una "destinazione di esportazione"? Questo è il modo ottuso di Eclipse di chiedere il nome del file .jar che dovrebbe creare. Ho appena creato un .jar dalla mia app, e non ho avuto problemi ... hmmm ... Sto usando il backend di jogl, non lwjgl.Ma dubito che dovrebbe fare molta differenza. –

6

Questa è una vecchia questione, ma se si utilizza una nuova versione di LibGDX e Gradle è possibile utilizzare la riga di comando per fare un eseguibile.

Ci sono diversi comandi, ma questi sono per l'imballaggio:

Desktop

gradlew desktop:dist 

Android (non firmato)

gradlew android:assembleRelease 

iOS

gradlew ios:createIPA 

Web

gradlew html:dist 

saperne di più su https://github.com/libgdx/libgdx/wiki/Gradle-on-the-Commandline

+0

Funziona perfettamente :-) –

+0

Per la distribuzione desktop "gradlew desktop: dist" crea il file .jar ma non funziona se non viene rilasciato nella cartella delle risorse. Mi chiedo se questo è un problema con un aggiornamento gradle? – FoxDonut

1

Se si utilizza Android Studio, è possibile creare una configurazione personalizzata per distribuire all'interno del programma.

Nell'elenco a discesa Esegui selezionare le configurazioni di modifica.

Fare clic su "+". Seleziona Gradle.

Nella parte destra di questa schermata è possibile fornire un nome alla configurazione.

Progetto Gradle: utilizzare il pulsante Sfoglia per selezionare l'applicazione desktop. Questa sarà simile a (nome del progetto): tavolo

Tasks: tipo "desktop: dist"

Applica.

Chiudere l'editor di configurazione e selezionare la nuova configurazione dal menu a discesa. Hit run e dovrebbe costruire il tuo progetto.

Il nuovo file Jar dovrebbe essere situato nella (Nome progetto)/da tavolo/costruire/libs

+0

Grazie mille per il ** (ProjectName)/desktop/build/libs **. Normalmente crea un piccolo file, ma una volta che l'ho compilato tramite cmd ha funzionato! – Soley