这个很奇怪。
偶尔在对导航图XML做了一些任意更改后,构建会失败,因为它找不到应该生成的两个特定函数(导航方向)。
错误是这样的:
main/java/com/project/upsell/UpsellFragment.kt: (99, 82): Unresolved reference: toMainFragment
main/java/com/project/upsell/UpsellVM: (35, 53): Unresolved reference: toSuccessFrag
我可以通过重命名函数来“修复”它,但下次XML被触及时,错误会再次出现,同样的“修复”也会重复。同样的问题也发生在我的环境、我的队友的环境和我们的Jenkins管道中。有时候,它在局部建立得很好,但在詹金斯中却被打破了。
我能提供的唯一线索是,在将Compose引入项目后不久,它就开始发生了。
一些构建信息:
ext {
dagger_version = '2.28.3'
nav_version = '2.3.5'
fragment_version = '1.3.6'
coroutine_version = '1.5.0'
compose_version = '1.0.1'
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.google.gms:google-services:4.3.8'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.10"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"
classpath "org.jetbrains.kotlin:kotlin-serialization:1.5.10"
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
classpath 'com.google.firebase:perf-plugin:1.4.0'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: "kotlin-kapt"
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: 'kotlinx-serialization'
kotlinOptions {
useIR = true
freeCompilerArgs += ['-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi',
'-Xuse-experimental=kotlinx.coroutines.FlowPreview',
'-Xopt-in=androidx.paging.ExperimentalPagingApi',
'-Xuse-experimental=kotlinx.coroutines.InternalCoroutinesApi',
'-Xopt-in=kotlin.ExperimentalStdlibApi']
}
composeOptions {
kotlinCompilerVersion = "1.5.10"
kotlinCompilerExtensionVersion '1.0.0-rc01'
}
buildFeatures {
dataBinding = true
compose = true
}
任何见解都将受到赞赏