जेटपैक कंपोज ब्रेक रूम कंपाइलर


11

मैंने एंड्रॉइड स्टूडियो 4.0 कैनरी 6 के साथ एक पूरी तरह से ताज़ा जेटपैक कंपोज़ प्रोजेक्ट (प्रोजेक्ट टेम्पलेट से) बनाया और मैंने कमरे की निर्भरता को जोड़ने का प्रयास किया। यहाँ मेरा ऐप-स्तर है build.gradle:

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


android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"

    defaultConfig {
        applicationId "com.example.composewithroom"
        minSdkVersion 29
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        compose true
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.1.0'
    implementation 'androidx.ui:ui-framework:0.1.0-dev03'
    implementation 'androidx.ui:ui-layout:0.1.0-dev03'
    implementation 'androidx.ui:ui-material:0.1.0-dev03'
    implementation 'androidx.ui:ui-tooling:0.1.0-dev03'


    implementation "androidx.room:room-runtime:2.2.2"
    implementation "androidx.room:room-ktx:2.2.2"
    kapt "androidx.room:room-compiler:2.2.2" // e: java.lang.NoSuchMethodError: org.jetbrains.kotlin.codegen.state.GenerationState$Builder.isIrBackend(Z)Lorg/jetbrains/kotlin/codegen/state/GenerationState$Builder;

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

जब मैं इसे बनाने की कोशिश करता हूं तो मुझे यह त्रुटि मिलती है:

e: java.lang.NoSuchMethodError: org.jetbrains.kotlin.codegen.state.GenerationState$Builder.isIrBackend(Z)Lorg/jetbrains/kotlin/codegen/state/GenerationState$Builder;

यह kapt "androidx.room:room-compiler:2.2.2"रचना को हटाने या अक्षम करने से या तो "निश्चित" हो सकता हैcompose true

किसी को भी यह कैसे तय करने के लिए किसी भी विचार है या कमरे के डेटाबेस अभी कंपोज के साथ अनुपयोगी है?


1
AFAIK, यह इस समय सिर्फ अनुपयोगी है। कुछ विशेष कोटलिन जादू के बीच एक संघर्ष है जो कम्पोज़ पर निर्भर करता है और कुछ एनोटेशन प्रोसेसर जैसे कि रूम।
कॉमन्सवेयर

बिल्कुल सही - मैं के compose = trueसाथ कोशिश की kapt "androidx.databinding"और एक ही त्रुटि मिली। शायद यह सिर्फ इतना है कि रचना कप्ट के साथ असंगत है।
जियांग

जवाबों:


6

1.3.61 में तय किया जाना चाहिए ... लेकिन जेटपैक कंपोजर प्लगइन अपडेट नहीं है।

आप निम्नलिखित YouTrack समस्या में अधिक जानकारी प्राप्त कर सकते हैं: IR (Jetpack Compose), KAPT, कक्ष: "AssertionError: IR बैकेंड को KotlinTypeMapper.mapType: MainActivity" नहीं कहना चाहिए । अंतिम टिप्पणी में कहा गया है कि:

यहाँ समस्या यह है कि JetPack Compose ने अपने आंतरिक कोटलिन कंपाइलर को अभी तक 1.3.61 में अपडेट नहीं किया है। हम देखेंगे कि हम इसके बारे में क्या कर सकते हैं।

इसके अलावा, Google समस्या ट्रैकर में निम्न समस्या: रचना सक्षम होने पर एनोटेशन प्रोसेसर विफल हो जाते हैं

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