Kotlin-android:未解析的引用数据绑定 [英] Kotlin-android: unresolved reference databinding
问题描述
我使用新的数据绑定库编写了以下用Java编写的片段类
I have following fragment class written in Java using new databinding library
import com.example.app.databinding.FragmentDataBdinding;
public class DataFragment extends Fragment {
@Nullable
private FragmentDataBinding mBinding;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_data, container, false);
return mBinding.getRoot();
}
}
编译并运行正常。
我试图在Kotlin中重写它并提出以下内容:
It compiles and runs fine.
I tried to rewrite it in Kotlin and came up with following:
import com.example.app.databinding.FragmentDataBdinding
class ProfileFragment : Fragment() {
private var mBinding: FragmentDataBinding? = null
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_data, container, false)
return mBinding!!.getRoot()
}
}
但是现在步骤:app:compileDebugKotlin
输出以下内容:
But now step :app:compileDebugKotlin
outputs the following:
错误:(16,38)未解析的引用:数据绑定
错误:(37,27)未解析的引用:FragmentDataBinding
Error:(16, 38) Unresolved reference: databinding
Error:(37, 27) Unresolved reference: FragmentDataBinding
如何在Kotlin中使用android-databinding库?
How can I use android-databinding library with Kotlin?
我的顶级-level build.gradle
:
My top-level build.gradle
:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.android.databinding:dataBinder:1.0-rc4'
}
}
allprojects {
repositories {
jcenter()
}
}
我的 build.gradle
在app dir中(仅限相关部分):
My build.gradle
in app dir (only relevant parts):
apply plugin: 'com.android.application'
apply plugin: 'com.android.databinding'
apply plugin: 'kotlin-android'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
buildscript {
ext.kotlin_version = '0.14.451'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
repositories {
mavenCentral()
maven {
url 'http://oss.sonatype.org/content/repositories/snapshots'
}
}
我正在使用Android Studio 1.4,构建工具版本23.0.1,Android SDK 23,SDK工具24.4.0
I'm using Android Studio 1.4, Build tools version 23.0.1, Android SDK 23, SDK tools 24.4.0
推荐答案
尝试使用th是配置:
主要 build.gradle :
buildscript {
ext.kotlin_version = '<kotlin-version>'
ext.android_plugin_version = '2.2.0-alpha4'
dependencies {
classpath "com.android.tools.build:gradle:$android_plugin_version"
//... rest of the content
}
}
应用 build.gradle :
android {
dataBinding {
enabled = true
}
}
dependencies {
kapt "com.android.databinding:compiler:$android_plugin_version"
}
kapt {
generateStubs = true
}
这篇关于Kotlin-android:未解析的引用数据绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!