Mendapatkan masalah saat mencoba menyiapkan antarmuka Jetpack Compose Found rPluginContext

Aug 18 2020

Jadi, saya mencoba membiarkan pembuatan jetpack berjalan dengan contoh sederhana, saya telah memperbarui plugin kotlin saya menjadi 1.4.0 dan juga memperbarui semua gradle build saya dengan dokumentasi penulisan jetpack, tetapi saya mendapatkan kesalahan ini saat mengompilasi

java.lang.IncompatibleClassChangeError: Ditemukan antarmuka org.jetbrains.kotlin.backend.common.extensions.IrPluginContext, tetapi kelas diharapkan ada di androidx.compose.plugins.kotlin.ComposeIrGenerationExtension.generate (ComposeIrGenerationExtension.kt: 41)

Saya juga telah mengunduh Android studio versi canary

proyek build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
  ext.kotlin_version = "1.4.0-rc"
  repositories {
    google()
    jcenter()
    maven{
      url "https://dl.bintray.com/kotlin/kotlin-eap/"
    }
  }
  dependencies {
    classpath "com.android.tools.build:gradle:4.0.1"
    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 {
    google()
    jcenter()
    maven{
      url "https://dl.bintray.com/kotlin/kotlin-eap/"
    }
  }
}

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

aplikasi build.gradle

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

android {
  compileSdkVersion 30
  buildToolsVersion "30.0.1"

  defaultConfig {
    applicationId "com.jetpackcompose"
    minSdkVersion 22
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  }

  buildTypes {
    release {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
  }

  buildFeatures {
    // Enables Jetpack Compose for this module
    compose true
  }

  // Set both the Java and Kotlin compilers to target Java 8.

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

  kotlinOptions {
    jvmTarget = '1.8'
  }

    composeOptions {
      kotlinCompilerVersion kotlin_version
      kotlinCompilerExtensionVersion "0.1.0-dev13"
    }
  }

  dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'


    implementation 'androidx.ui:ui-core:0.1.0-dev13'
    implementation 'androidx.ui:ui-tooling:0.1.0-dev13'
    implementation 'androidx.ui:ui-layout:0.1.0-dev13'
    implementation 'androidx.ui:ui-material:0.1.0-dev13'


    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
  }


tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
  kotlinOptions {
    jvmTarget = "1.8"
    freeCompilerArgs += ["-Xallow-jvm-ir-dependencies", "-Xskip-prerelease-check"]
  }
}

Tapi saya tidak bisa mengkompilasi aplikasi, saya mencoba menjalankan contoh dasar

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent{
        sayHello()
    }
  }

  @Preview
  @Composable
  fun sayHello(){
    Text("Hello World")
  }
}

Adakah yang tahu mengapa kesalahan ini dilemparkan?

Jawaban

DenysNykyforov Aug 18 2020 at 12:02

Coba perbarui versi Tulis ke 0.1.0-dev16. Sepertinya 0.1.0-dev13tidak kompatibel dengan Kotlin1.4-rc

3 oiyio Dec 05 2020 at 21:15

Menggunakan Kotlin versi 1.4.10 alih-alih 1.4.20 memecahkan masalah saya.