Riscontri problemi durante il tentativo di configurare Jetpack Compose Found interface rPluginContext

Aug 18 2020

Quindi, sto cercando di far funzionare jetpack compose con un semplice esempio, ho già aggiornato il mio plugin kotlin alla 1.4.0 e ho anche aggiornato tutto il mio build gradle con la documentazione jetpack compose, ma ho ricevuto questo errore durante la compilazione

java.lang.IncompatibiliClassChangeError: interfaccia trovata org.jetbrains.kotlin.backend.common.extensions.IrPluginContext, ma la classe era prevista su androidx.compose.plugins.kotlin.ComposeIrGenerationExtension.generate(ComposeIrGenerationExtension.kt:41)

Ho anche scaricato la versione canary di Android Studio

progetto 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
}

app 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"]
  }
}

Ma non riesco a compilare l'app, sto cercando di eseguire l'esempio di base

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

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

Qualcuno sa perché viene generato questo errore?

Risposte

DenysNykyforov Aug 18 2020 at 12:02

Prova ad aggiornare la versione di Compose a 0.1.0-dev16. Sembra che 0.1.0-dev13non sia compatibile con Kotlin1.4-rc

3 oiyio Dec 05 2020 at 21:15

L'utilizzo di Kotlin versione 1.4.10 anziché 1.4.20 ha risolto il mio problema.