kotlin.jvm.KotlinReflectionNotSupportedError: Kotlin प्रतिबिंब कार्यान्वयन रनटाइम पर नहीं मिला है। सुनिश्चित करें कि आपके पास kotlin-reflect.jar है


83

जब मैं संकलित करता हूं तो मुझे उपरोक्त त्रुटि मिली। नीचे मेरी ग्रेड फ़ाइल: -

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
}

क्या मुझे कुछ भी जोड़ने की याद आई?

जवाबों:


158

त्रुटि से, मुझे लगता है:

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

dependenciesमानक पुस्तकालय के अलावा अपने में।


2
धन्यवाद! पाया हमें kotlinlang.org/docs/reference/use-gradle.html केcompile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version" अनुसार जरूरत है
Elye

शायद स्पष्ट नहीं है: (1) डबल कोट होना चाहिए, एकल नहीं, अन्यथा $ kotlin_version का विस्तार नहीं होगा, (2) kotlinlang.org/docs/reference/… के अनुसार : $ kotlin_version को तब छोड़ा जा सकता है यदि यह> = 1.1 हो .2। लेकिन यह मेरे लिए टूट गया लगता है (मेरी $ kotlin_version वर्तमान में 1.2.10 है); त्रुटि संदेश दिखाता है कि यह एक फर्जी url का निर्माण करता है जैसे कि https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect//kotlin-reflect-.jar। तो, मैं अभी भी इस उत्तर में नुस्खा का उपयोग कर रहा हूं।
डॉन हैच

4
इस बात implementationका उल्लेख करते हुए कि अब इसका पसंदीदा निर्देश है compile: implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
kip2

क्या इस आश्रितता के लिए कोई गार्ड नियम है?
ट्रिनिटी

1

मेरे लिए समस्या यह नहीं थी कि कोटलिन के समान संस्करण मैं अपने मॉड्यूल और काम कर रहा हूं इसलिए मुझे उन्हें उसी संस्करण का उपयोग करने के लिए मजबूर करना पड़ा

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.