Android中的Kotlin脚本

jk9hmnmh  于 2023-10-23  发布在  Kotlin
关注(0)|答案(1)|浏览(173)

我想在andoird中运行Kotlin脚本。

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(binding.root)
        val engine = KotlinJsr223DefaultScriptEngineFactory().getScriptEngine()
        engine.eval("val x =3")
        val result = engine.eval("x+2")
    }
}

我得到一个这样的错误:

Cannot access 'javax.script.ScriptEngineFactory' which is a supertype of 'kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory'. Check your module classpath for missing or conflicting dependencies

我添加的依赖关系是:

implementation "org.jetbrains.kotlin:kotlin-scripting-jsr223:1.7.22"
    implementation "org.jetbrains.kotlin:kotlin-script-runtime:1.7.22"
    implementation "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.22"

我是否缺少一些依赖性?

ccgok5k5

ccgok5k51#

您遇到的错误可能与dependenciesclasspath问题有关。在build.gradle文件中添加以下依赖项。

implementation "org.jetbrains.kotlin:kotlin-stdlib:1.7.22"
implementation "org.jetbrains.kotlin:kotlin-reflect:1.7.22"
implementation "org.jetbrains.kotlin:kotlin-scripting-jsr223:1.7.22"
implementation "org.jetbrains.kotlin:kotlin-script-runtime:1.7.22"
implementation "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.22"

如果您仍然面临问题,请确保您的项目的build.gradle文件具有指定的正确Kotlin版本。

buildscript {
    ext.kotlin_version = "1.7.22"
    // other configurations...
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    // other dependencies...
}

确保您的build.gradle(模块:app)包含kotlin-android-extensions插件。

android {
    kotlin {
        experimental {
            coroutines "enable"
        }
    }
}

相关问题