【发布时间】:2018-01-18 09:13:39
【问题描述】:
我正在尝试在库模块中使用 Kotlin,而不在 app 模块中使用它。 app 模块仅使用 Java,不使用库中的任何 Kotlin 类。 Gradle 不会编译:
Error:(2, 1) A problem occurred evaluating project ':<Library>'.
> Plugin with id 'kotlin-android' not found.
我为包含 Kotlin 所做的更改:
{库根目录}/build.gradle
buildscript {
ext.kotlin_version = '1.1.3-2'
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
...
}
allprojects {
repositories {
jcenter()
}
}
{library root} / {library module} / build.gradle
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
...
dependencies{
...
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}
当我将它添加到应用程序模块时,项目编译没有问题,但我想避免将它添加到应用程序模块中,因为我想在多个应用程序中使用这个库而不对这些应用程序进行代码更改应用程序
使用的 Gradle 版本:3.3 android gradle 插件版本:2.3.3
编辑:@Jushua 的答案有效,但仍需要更新项目根 build.gradle。我希望有一个解决方案,只需添加对库的依赖项即可使整个工作正常。
【问题讨论】:
-
如果是这样,导出 jar 或 aar 文件 android 使用它们。否则,您还必须为应用添加 kotlin 支持。
-
如果
{library root}和{project root}不相同,则库根目录中的buildscript.dependencies不适用于您的项目。您应该将ext.kotlin_version和classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"添加到您的项目根 gradle 文件中,或者您可以将库作为 aar 文件导入。