Используйте путь к классам среды выполнения модуля Android в задаче Gradle JavaExecAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Используйте путь к классам среды выполнения модуля Android в задаче Gradle JavaExec

Сообщение Anonymous »

У меня есть модуль Android, который содержит задачу Gradle JavaExec. При запуске задачи JavaExec я бы хотел, чтобы она использовала путь к классам модуля.
Задача JavaExec выполняет основную функцию Kotlin, которая использует некоторую стороннюю библиотеку (kotlinpoet). Но при запуске задачи Gradle я получаю исключение java.lang.ClassNotFoundException из-за того, что библиотека kotlinpoet не включена в путь к классам.
Я обнаружил подобные проблемы в StackOverflow и попробовал много вариантов параметра classpath в myTask, но ничего не помогло.
Вот Файл build.gradle:
plugins {
id 'com.android.library'
id 'kotlin-android'
}

apply plugin: 'kotlinx-serialization'

android {
compileSdkVersion 30
defaultConfig {
...
}
buildTypes {
...
}
compileOptions {
...
}
kotlinOptions {
jvmTarget = '1.8'
}
}

task myTask(type: JavaExec) {
classpath += (files('build/tmp/kotlin-classes/debug', "${android.sdkDirectory}/tools/lib/kotlin-stdlib-1.1.3-2.jar", getBuildDir().toString() + "/intermediates/classes/debug"))
main = 'com.foo.app.home.parser.MainKt'
}

tasks.named('build') { dependsOn('configGeneratorTask') }

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "androidx.core:core-ktx:$androidx_core_ktx"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-core:$kotlinx_serialization_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinx_serialization_version"
implementation 'com.squareup:kotlinpoet:1.10.2'
}


Подробнее здесь: https://stackoverflow.com/questions/699 ... radle-task
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»