android-kotlin错误:无法解析的参考数据绑定& ActivityMainBinding [英] android-kotlin error : unresolved reference databinding & ActivityMainBinding

查看:273
本文介绍了android-kotlin错误:无法解析的参考数据绑定& ActivityMainBinding的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Android Studio 3.0 Canary 6版本.我在类中启用了dataBinding,并且代码未显示任何错误.但是,当我构建一个APK时,构建失败并显示以下错误:

I am using Android Studio 3.0 Canary 6 version. I've enabled dataBinding in my class and the code doesn't show any error. But, when I build an APK, the build fails and shows the following error:

Error:(8, 37) Unresolved reference: databinding  
Error:(22, 26) Unresolved reference: ActivityMainBinding  
Error:(38, 50) Unresolved reference: ActivityMainBinding  
Error:(43, 52) Unresolved reference: ActivityMainBinding  
Error:(46, 52) Unresolved reference: ActivityMainBinding  
Error:(49, 52) Unresolved reference: ActivityMainBinding  
Error:(52, 52) Unresolved reference: ActivityMainBinding  
Error:(55, 52) Unresolved reference: ActivityMainBinding  
Error:(58, 52) Unresolved reference: ActivityMainBinding  
Error:(61, 52) Unresolved reference: ActivityMainBinding  
Error:(64, 52) Unresolved reference: ActivityMainBinding  
Error:(67, 52) Unresolved reference: ActivityMainBinding  
Error:(70, 52) Unresolved reference: ActivityMainBinding  
Error:(73, 52) Unresolved reference: ActivityMainBinding  
Error:Execution failed for task ':app:compileDebugKotlin'.  
Compilation error. See log for more details

顶级build.gradle文件如下:

The top level build.gradle file is as follows :

buildscript {
ext.kotlin_version = '1.1.3-2'
repositories {
    google()
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-alpha6'
    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 {
        google()
        jcenter()
        mavenCentral()
    }
}

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

模块build.gradle文件如下:

The module build.gradle file is as follows :

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.example.jimil.calculator"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 
            "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled true
            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:3.0.1', {
            exclude group: 'com.android.support', module: 'support-
                annotations'
    })
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:26.1.0'
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    kapt 'com.android.databinding:compiler:3.0.0-alpha6'
}

kapt {
    generateStubs = true
}

MainActivity.kt类是:

The MainActivity.kt class is :

import com.example.jimil.calculator.databinding.ActivityMainBinding  
...  
class MainActivity : AppCompatActivity() {  
    private var binding: ActivityMainBinding? = null  
    ...  
}

请帮助我解决构建错误.

Please help me solve the build error.

推荐答案

gradle中存在多个错误.

There are several errors in your gradle.

当前的Gradle-Version为3.0.0-beta3.这意味着您需要将类路径更改为

The current Gradle-Version is 3.0.0-beta 3. That means that you need to change your classpath to

classpath 'com.android.tools.build:gradle:3.0.0-beta6'

与您的依赖项相同

kapt "com.android.databinding:compiler:3.0.0-beta6"

您还应该在适当的文件夹中提供插件.

You should also provide your plugins in the proper folder.

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

还应该启用编译选项,以使注释处理器使用Java8依赖关系(对于Kotlin,1.8版可能是必需的).

You should also enable compile options to have your annotation processors use Java8-dependencies (which may be required for Kotlin to target 1.8).

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

完成此操作后invalidate your cache and restart.

如果错误仍然存​​在,请检查Gradle Console. XML文件中可能存在错误,该错误使注释处理器停止生成数据绑定类.

If the error still persists check the Gradle Console. There may be an error in your XML File which stops your Annotation processor to generate the databinding classes.

这篇关于android-kotlin错误:无法解析的参考数据绑定& ActivityMainBinding的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆