找不到类数据绑定.FragmentBinding

时间:2017-07-06 11:33:26

标签: android android-studio data-binding kotlin

我试图在我的片段中使用数据绑定但是我在运行时遇到以下错误:

Could not find class 'com.example.databinding.FragmentUpSellBinding', referenced from method com.example.UpSellFragment.onCreateView

结果如下:

FATAL EXCEPTION: main Process: nl.anwb.fietsen.debug, PID: 5563                                                                     
java.lang.IllegalStateException: DataBindingUtil.inflate(…r,                                                                                     
false) must not be null`

我的build.gradle看起来像这样:

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

android {
    dataBinding {
        enabled = true
    }
}
kapt {
    generateStubs = true
}

dependencies {
    kapt 'com.android.databinding:compiler:3.0.0-alpha4'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}

主要buid.gradle

buildscript {
    ext.kotlin_version = '1.1.2-4'
    ext{
        supportLibraryVersion = '25.3.1'
    }
    repositories {
        maven { url 'https://maven.google.com' }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

你不需要

build.gradle

    dataBinding {
        enabled = true
    }

删除并尝试

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


kapt {
    generateStubs = true
}

dependencies {
    kapt 'com.android.databinding:compiler:3.0.0-alpha4'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}

将您的Kotlin更新为

ext.kotlin_version = '1.1.3-2'

答案 1 :(得分:0)

Sanne,我有与你完全相同的build.gradle文件,除了较新的gradle -alpha9,并且在使用DataBindingUtil.inflate(inflater,...)时不会从onCreateView中获取运行时错误。< / p>

在我的情况下,dataBinding {enabled = true}是必需的。

然而,在使用FragmentXBinding.inflate(inflater)时,我确实收到了构建错误(未解析的引用:数据绑定),直到我指定FragmentXBinding.inflate(inflater为LayoutInflater)。