错误: 在运行时找不到 Kotlin 反射实现

当我编译的时候,我得到了上面的错误。我的 gradle 文件如下:-

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'


android {
compileSdkVersion 23
buildToolsVersion "24.0.0 rc2"


defaultConfig {
applicationId "package.name"
minSdkVersion 16
targetSdkVersion 23
versionCode 6
versionName "2.0"
}


buildTypes {
debug {
minifyEnabled false
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}


dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile "com.android.support:appcompat-v7:$support_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile "org.jetbrains.anko:anko-sdk15:$anko_version"
compile "org.jetbrains.anko:anko-support-v4:$anko_version"
compile "com.android.support:recyclerview-v7:$support_version"
}


buildscript {
ext.kotlin_version = '1.0.1-2'
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
repositories {
mavenCentral()
}

我的项目分级如下

buildscript {
ext.support_version = '23.2.1'
ext.kotlin_version = '1.0.1'
ext.anko_version = '0.8.3'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0-alpha3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}


allprojects {
repositories {
jcenter()
}
}


task clean(type: Delete) {
delete rootProject.buildDir
}

我错过什么了吗?

34658 次浏览

From the error, I assume:

implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

in your dependencies in addition to the standard library.

For me the issue was not having the same versions of kotlin I'm my modules and lib so I had to force them to use the same version

configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.jetbrains.kotlin') {
details.useVersion versions.kotlin
}
}
}}

I resolved this by adding this in build.gradle

implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.61"