2014-12-10 9 views
15

Ho un progetto di gioco libGDX per Android e voglio eseguire uno script Groovy in esso.Ottenere un file di directory e ClassLoader per un gioco libGDX Android

Per farlo, sto esaminando questo codice di esempio: https://github.com/melix/grooidshell-example

Sono riusciti ad eseguire incorporare Groovy in Java su Android. In particolare GrooidShell.java (https://github.com/melix/grooidshell-example/blob/master/GroovyDroid/src/main/java/me/champeau/groovydroid/GrooidShell.java)

Sono riuscito a implementare la maggior parte del codice nel launcher Android del progetto libGDX. Tuttavia, non posso eseguirlo perché mi mancano due argomenti:

public GrooidShell(File tmpDir, ClassLoader parent) { 

Il primo può essere qualsiasi directory. E il secondo, non so nemmeno a cosa serve.

La mia domanda è, cosa è il ClassLoader e File argomenti dovrebbe essere? Ho bisogno di ottenere e utilizzarli nella classe AndroidLauncher di libGDX, che è come questo:

public class AndroidLauncher extends AndroidApplication { 
    @Override 
    protected void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); 
     initialize(new MyGdxGame(), config); 
    } 
} 

risposta

4

In un primo momento prestare attenzione a GroovyActivity.groovy:

GrooidShell shell = new GrooidShell(applicationContext.getDir("dynclasses", 0), this.classLoader) 

primo argomento di GrooidShell vuole creare in una directory denominata "dynclasses" con premission predefinita:

public abstract File getDir (String name, int mode)

Recupera, creando se necessario, una nuova directory in cui l'applicazione può posizionare i propri file di dati personalizzati. È possibile utilizzare l'oggetto File restituito per creare e accedere ai file in questa directory. Nota che i file creati tramite un oggetto File saranno accessibili solo dalla tua applicazione; puoi solo impostare la modalità dell'intera directory, non dei singoli file.

Parametri

nome Nome della directory per recuperare. Questa è una directory creata come parte dei dati dell'applicazione. Modalità Modalità operativa. Utilizzare 0 o MODE_PRIVATE per l'operazione predefinita, MODE_WORLD_READABLE e MODE_WORLD_WRITEABLE per controllare le autorizzazioni.

Returns

un oggetto file per la directory richiesta. La directory sarà stata creata se non esiste già.

secondo argomentothis.classLoader fare riferimento alle attuali ClassLoader in esecuzione e si può usare come è o this.class.classLoader nello script Groovy. puoi anche utilizzare getApplicationContext().getClassLoader() nel codice java dell'attività.

getClassLoader()
Embedding Groovy

Problemi correlati