Kotlin 崩溃无法将提供的符号转换为依赖项类型的对象:org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension_Decolated

RaI*_*qer 4 android gradle kotlin

将 kotlin 版本从 1.0.5-2 升级到 1.1.0 后出现崩溃:

Error:(114, 0) Cannot convert the provided notation to an object of type Dependency: org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension_Decorated@5a39a165.
The following types/formats are supported:
  - Instances of Dependency.
  - String or CharSequence values, for example 'org.gradle:gradle-core:1.0'.
  - Maps, for example [group: 'org.gradle', name: 'gradle-core', version: '1.0'].
  - FileCollections, for example files('some.jar', 'someOther.jar').
  - Projects, for example project(':some:project:path').
  - ClassPathNotation, for example gradleApi().

Comprehensive documentation on dependency notations is available in DSL reference for DependencyHandler type.
Run Code Online (Sandbox Code Playgroud)

该项目未同步,因此我无法调用 gradle 依赖项或其他任何内容。

主要构建.gradle

ext {
    kotlin_version = '1.1.0'
    //(...)
    kotlin = "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
Run Code Online (Sandbox Code Playgroud)

应用程序 build.gradle 中的同步崩溃

dependencies {
    compile kotlin
    //...
}
Run Code Online (Sandbox Code Playgroud)

RaI*_*qer 5

事实证明,新版本 kotlin 依赖项的 gradle 配置中使用了“kotlin”关键字。解决方案是将依赖项标签名称从 kotlin 更改为(例如)kotlinDependency

老的:

ext {
    kotlin_version = '1.1.0'
    //(...)
    kotlin = "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
Run Code Online (Sandbox Code Playgroud)

新的:

ext {
    kotlin_version = '1.1.0'
    //(...)
    kotlinDependency = "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
Run Code Online (Sandbox Code Playgroud)