未解决的参考:ActivityMainBinding

Ale*_*das 6 data-binding android kotlin

我知道这个问题已经被问过了,但是我尝试了所有给出的答案,但仍然一无所获。

未解决的参考:ActivityMainBinding

这是我mainActivity的一部分

import com.kolydas.aboutme.databinding.ActivityMainBinding //error


class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding //error
    //....
}
Run Code Online (Sandbox Code Playgroud)

这是我的App build.gradle

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

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.kolydas.aboutme"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    dataBinding{
        enabled = true  //enable data binding
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    kapt "com.android.databinding:compiler:3.4.0"
}
Run Code Online (Sandbox Code Playgroud)

当然,在我的xml文件中,我在开头和结尾都有layout / layout标签。

小智 15

尝试添加 build.gradle (Module:app)

buildFeatures {
   viewBinding true
}
Run Code Online (Sandbox Code Playgroud)


小智 12

有时您所需要的只是清理并重建项目。

Build -> Clean Project 
Build -> Rebuild Project
Run Code Online (Sandbox Code Playgroud)

这足以生成绑定类。

生成的绑定类

  • 一直这样做很无聊。难道没有更好的方法吗? (2认同)

And*_*oid 10

没有任何建议对我有用,因为解决此问题的正确方法是放置 (app level build.gradle)

buildFeatures{
   dataBinding = true
   viewBinding = true
}
Run Code Online (Sandbox Code Playgroud)


pro*_*m85 7

我时不时地会看到这个相对较旧的错误(无论是否使用 kotlin,但当您将类从 java 转换为 kotlin 时,它很常见),并且它仍然是最新的 android studio 的问题。在许多情况下,清理项目并没有帮助。每当这个问题似乎没有正当理由时,以下技巧总是可以解决问题:

解决方案1

重命名 xml 文件(例如main_activity2.xml), clean the project and try to do change MainActivityBinding toMainActivity2Binding`

解决方案2我最近才发现这个技巧,但它似乎也可靠

或者在有问题的 xml 文件中进行更改(添加视图等或更改属性),清理项目,然后它会再次工作。

背景

我在模块之间移动布局时看到这种情况发生,有时在其他情况下也是如此。但定期重构结构会导致这个问题。有时,在许多情况下,某些缓存问题会导致此问题,即使删除所有临时文件并清理项目也无济于事,但仅更改 xml 或重命名它确实可以解决问题...