Как запустить сценарий Kotlin на хосте сценариев приложения Android ⇐ Android
-
Гость
Как запустить сценарий Kotlin на хосте сценариев приложения Android
Я хочу запустить скрипт Kotlin (в строковой форме) в Android:
class MainActivity : AppCompatActivity() { переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val engine = KotlinJsr223DefaultScriptEngineFactory().getScriptEngine() engine.eval("значение x =3") val result = engine.eval("x+2") Log.d("test", "onCreate: result=$result") } } добавленная мной зависимость:
реализация "org.jetbrains.kotlin:kotlin-scripting-jsr223:1.4.0" реализация "org.jetbrains.kotlin:kotlin-script-runtime:1.4.0" реализация "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.4.0" Но я не могу скомпилировать код, появляется ошибка «Дублированный класс»:
Дубликат класса org.jetbrains.kotlin.daemon.common.WallTotalProfiler найден в модулях jetified-kotlin-daemon-client-1.4.0 (org.jetbrains.kotlin:kotlin-daemon-client:1.4.0) и jetified-kotlin-daemon-embeddable-1.4.0 (org.jetbrains.kotlin:kotlin-daemon-embeddable:1.4.0) Если я удалю зависимость kotlin-compiler-embeddable, ошибка дублирующего класса исчезнет. Но произойдет новая ошибка:
Невозможно получить доступ к «javax.script.ScriptEngineFactory», который является супертипом «kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory». Проверьте путь к классам вашего модуля на предмет отсутствующих или конфликтующих зависимостей. Как я могу это сделать?
Я хочу запустить скрипт Kotlin (в строковой форме) в Android:
class MainActivity : AppCompatActivity() { переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val engine = KotlinJsr223DefaultScriptEngineFactory().getScriptEngine() engine.eval("значение x =3") val result = engine.eval("x+2") Log.d("test", "onCreate: result=$result") } } добавленная мной зависимость:
реализация "org.jetbrains.kotlin:kotlin-scripting-jsr223:1.4.0" реализация "org.jetbrains.kotlin:kotlin-script-runtime:1.4.0" реализация "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.4.0" Но я не могу скомпилировать код, появляется ошибка «Дублированный класс»:
Дубликат класса org.jetbrains.kotlin.daemon.common.WallTotalProfiler найден в модулях jetified-kotlin-daemon-client-1.4.0 (org.jetbrains.kotlin:kotlin-daemon-client:1.4.0) и jetified-kotlin-daemon-embeddable-1.4.0 (org.jetbrains.kotlin:kotlin-daemon-embeddable:1.4.0) Если я удалю зависимость kotlin-compiler-embeddable, ошибка дублирующего класса исчезнет. Но произойдет новая ошибка:
Невозможно получить доступ к «javax.script.ScriptEngineFactory», который является супертипом «kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory». Проверьте путь к классам вашего модуля на предмет отсутствующих или конфликтующих зависимостей. Как я могу это сделать?
Мобильная версия