У меня есть игровой проект libGDX для Android, и я хочу выполнить в нем скрипт Groovy.
Для этого я изучаю этот пример кода: 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); } }
Сначала обратите внимание на 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
в this.class.classLoader
скрипте. Вы также можете использовать getApplicationContext().getClassLoader()
в вашем Java-коде активности.
getClassLoader ()
Вложение Groovy