我正在尝试在我的应用程序中实现数据绑定并且惨遭失败。我似乎找不到任何有类似问题的人,所以我希望这里有人知道为什么会发生这种情况。
当我使用提供的入门应用程序按照Android Kotlin Fundamentals 中的本教程进行操作时,数据绑定可以完美运行,完全没有问题。但是当我在自己的项目中做同样的事情时,它不会编译。我认为生成所需文件有问题。
从我收集到的信息来看,它与 compile sdk 版本有关。如果我用这个 build.gradle 文件创建一个新项目,一切正常,所以我知道这不是拼写错误或缺少标签。
plugins {
id 'com.android.application'
id 'kotlin-android'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"defaultConfig {
applicationId "com.example.databinding"
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 {
dataBinding true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
但!当我根据 Android Studio 的建议更新内容时,一切都停止了。这些是文件中唯一更改的内容:
compileSdkVersion 31
targetSdkVersion 31
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
我可以看到与数据绑定相关的文件夹/文件出现在应用程序 > 构建 > 文件资源管理器中生成,所以发生了一些事情,但在 Android Studio 中没有显示任何内容。我已经尝试了这里提到的一切。我怎样才能解决这个问题?