Получение файла каталога и ClassLoader для игры в формате libGDX

У меня есть игровой проект libGDX для Android, и я хочу выполнить Groovy script в нем.

Чтобы сделать это, я изучаю этот пример кода: https://github.com/melix/grooidshell-example

Им удалось выполнить Groovy встраивание в Java на Android. В частности, GrooidShell.java (https://github.com/melix/grooidshell-example/blob/master/GroovyDroid/src/main/java/me/champeau/groovydroid/GrooidShell.java)

Мне удалось реализовать большую часть кода в панели запуска Android проекта libGDX. Однако я не могу запустить его, потому что мне не хватает двух аргументов:

public GrooidShell(File tmpDir, ClassLoader parent) {

Первым может быть любой каталог. И второй, я даже не знаю, для чего это.

Мой вопрос: , что есть аргументы ClassLoader и File, которые должны быть? Мне нужно получить их и использовать их в классе AndroidLauncher libGDX, который выглядит следующим образом:

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

Ответы

Ответ 1

Сначала обратите внимание на GroovyActivity.groovy:

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

первый аргумент GrooidShell хочет создать каталог с именем "dynclasses" с по умолчанию:

public abstract Файл getDir (имя строки, int mode)

Извлеките, создав при необходимости новый каталог, в котором приложение может разместить свои собственные файлы данных. Вы можете использовать возвращаемый объект File для создания и доступа к файлам в этом каталоге. Обратите внимание, что файлы, созданные через объект File, будут доступны только вашему собственному приложению; вы можете установить режим всего каталога, а не отдельных файлов.

Параметры

name Имя каталога для извлечения. Это каталог, созданный как часть ваших данных приложения. Режим работы. Используйте 0 или MODE_PRIVATE для операции по умолчанию, MODE_WORLD_READABLE и MODE_WORLD_WRITEABLE для управления разрешениями.

Возвращает

Объект File для запрошенной директории. Каталог будет создан, если он еще не существует.

Второй аргумент this.classLoader относится к текущему запуску ClassLoader, и вы можете использовать его как есть или this.class.classLoader в groovy script. вы также можете использовать getApplicationContext().getClassLoader() в своем Java-коде активности.

getClassLoader()
Вложение Groovy