我正在尝试新的Jetpack撰写,但是当我切换到kapt
时,出现此错误:java.lang.IllegalStateException: Backend Internal error: Exception during code generation
。
它可以与注释处理器一起正常工作,但是我想为该项目使用kapt。我将不胜感激。
我知道很多问题都可能导致上述错误,但我认为这是jetpack
和kapt
所特有的
我在下面添加了我的.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 "me.jerryhanks.pinchme"
minSdkVersion 26
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = [
// "room.schemaLocation":"$projectDir/schemas".toString(),
// "room.incremental":"true",
// "room.expandProjection":"true"]
// }
// }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
buildFeatures {
compose true
}
// To inline the bytecode built with JVM target 1.8 into
// bytecode that is being built with JVM target 1.6. (e.g. navArgs)
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
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'
/**Compose*/
implementation 'androidx.ui:ui-layout:0.1.0-dev02'
implementation 'androidx.ui:ui-material:0.1.0-dev02'
implementation 'androidx.ui:ui-tooling:0.1.0-dev02'
/**Corountine*/
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$versions.coroutine"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$versions.coroutine"
// implementation "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:$versions.coroutine"
/**Room*/
implementation "androidx.room:room-runtime:$versions.room"
kapt "androidx.room:room-compiler:$versions.room"
/**Test*/
testImplementation 'junit:junit:4.12'
testImplementation "androidx.room:room-testing:$versions.room"
/**Android Test*/
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
答案 0 :(得分:0)
请更改订单
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
到
apply plugin: 'com.android.application'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
答案 1 :(得分:0)
这似乎是该团队仍在努力的bug。
Compose仍处于实验阶段,不应在生产应用程序中使用。此外,Compose需要为Kotlin编译器启用新的/实验性IR(中间表示)后端,因此您很可能会遇到与新后端相关的语言错误。
撰写确实需要IR后端(带有Google扩展程序)。
答案 2 :(得分:0)
该问题似乎已在较新的 compose 版本中得到解决。试试 1.0.0beta08