gpt4 book ai didi

Android Studio 3.0 数据绑定(bind)引用代码不是由 android studio 生成的

转载 作者:IT老高 更新时间:2023-10-28 13:40:57 24 4
gpt4 key购买 nike

我在使用 Android Studio 3.0 以及 kotlin 和数据绑定(bind)的组合时遇到问题。我不知道为什么,但是选项设置 -> 编辑器 -> 数据绑定(bind) -> android studio 生成的引用代码不能正常工作。

我已经在具有不同 kotlin(1.1.2-3、1.1.3、1.1.3-2)和数据绑定(bind)编译器版本的不同 AS 3.0 版本(Canary 3、Canary 5、Canary 6)上进行了尝试。可以肯定的是,我什至创建了干净的项目并且发生了同样的问题。我确信问题在于 kotlin 和数据绑定(bind)组合,因为在同一个项目中,java 类中的数据绑定(bind)工作得很好,数据绑定(bind)生成的文件会随着 .xml 文件的每次更改而更新。

我不会在这里粘贴我的每个 gradle 内容文件,因为我已经尝试了很多 kotlin 和数据绑定(bind)的组合版本。以下是其中之一。

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-kapt'

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.dawidj.myapplication"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

dataBinding {
enabled = true
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:25.4.0'
testImplementation 'junit:junit:4.12'

// Databinding
kapt "com.android.databinding:compiler:$android_plugin_version"
}

repositories {
mavenCentral()
}



buildscript {
ext.android_plugin_version = '2.4.0-alpha7'
ext.kotlin_version = '1.1.3'
repositories {
maven { url 'https://maven.google.com' }
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
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 {
maven { url 'https://maven.google.com' }
jcenter()
mavenCentral()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

我注意到,当我在数据绑定(bind) ex.:activity_main.xml -> ActivityMainBinding.java 生成的文件上单击(ctrl + 单击)后我在 java 文件中时,我的屏幕被直接移动到 activity_main.xml 文件.在 Kotlin 类屏幕中的相同操作被移动到 ActivityMainBinding.java 文件之后。

这是一个非常烦人的问题,因为 .xml 文件中的每一次更改我都必须重新构建项目以使用数据绑定(bind)。

任何帮助或信息将不胜感激

编辑:使缓存无效/重新启动仅有助于第一个项目构建。如果我创建新的 .xml 布局,它在项目构建之前工作正常。

最佳答案

在你app build.gradle

中添加以下内容

安卓{
///现有代码
卡普{
generateStubs = true
}
}

这可能会有所帮助。

关于Android Studio 3.0 数据绑定(bind)引用代码不是由 android studio 生成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45066354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com