Kotlin-android:未解析的引用数据绑定 [英] Kotlin-android: unresolved reference databinding

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

问题描述

我使用新的数据绑定库编写了以下用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屋!

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