找不到类databinding.FragmentBinding
我试图在我的片段中使用数据绑定,但在运行时出现以下错误:
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" } }
有谁知道我可以解决这个问题?
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'
Sanne,我有和你一样的build.gradle文件,除了一个新的gradle -alpha9,并且在使用DataBindingUtil.inflate(inflater,…)时不会从onCreateView中得到运行时错误。
在我的情况下,dataBinding {enabled = true}是必需的。
但是,当我使用FragmentXBinding.inflate(inflater),直到我指定FragmentXBinding.inflate(inflater作为LayoutInflater),我得到一个生成错误(未解决的参考:databinding)。