Android数据绑定的Kotlin问题

我正在尝试使用Kotlin在Android上进行数据绑定,但遇到一些问题。 下面列出了我的gradle文件。

顶层:

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0-beta3' classpath 'com.google.gms:google-services:2.1.0-beta3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 

应用级别:

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "..." minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" resValue 'string', 'package_name', applicationId } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } dataBinding { enabled = true } sourceSets { main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile(name: 'app-release', ext: 'aar') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:design:23.3.0' compile 'com.android.support:recyclerview-v7:23.3.0' compile 'com.android.support:support-v4:23.3.0' compile 'com.google.android.gms:play-services-plus:8.4.0' compile 'com.google.android.gms:play-services-auth:8.4.0' compile 'com.google.android.gms:play-services-gcm:8.4.0' compile 'com.google.android.gms:play-services-nearby:8.4.0' compile 'io.reactivex:rxkotlin:0.55.0' compile 'io.reactivex:rxandroid:1.1.0' compile 'com.trello:rxlifecycle-kotlin:0.5.0' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'io.pristine:libjingle:11139@aar' compile 'com.google.code.gson:gson:2.6.2' compile 'com.squareup.retrofit2:retrofit:2.0.0' compile 'com.squareup.retrofit2:converter-gson:2.0.0' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0' compile 'com.pushtorefresh.storio:sqlite:1.8.0' compile 'com.pushtorefresh.storio:content-resolver:1.8.0' kapt 'com.google.dagger:dagger-compiler:2.0.2' compile 'com.google.dagger:dagger:2.0.2' provided 'org.glassfish:javax.annotation:10.0-b28' } buildscript { ext.kotlin_version = '1.0.1-2' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } repositories { mavenCentral() flatDir { dirs 'libs' } } kapt { generateStubs = true } apply plugin: 'com.google.gms.google-services' 

我正在使用下面的代码来夸大我的看法。

 val binding = FragmentTransferListBinding.inflate(inflater, container, false) 

但是当我尝试构建项目时,我得到这个错误。

 Error:(7, 31) Unresolved reference: databinding Error:(28, 9) Unresolved reference: FragmentTransferListBinding Error:Execution failed for task ':app:compileDebugKotlinAfterJava'. > Compilation error. See log for more details 

我尝试添加数据绑定编译器为kapt建议在其他答案

 kapt 'com.android.databinding:compiler:2.1.0-beta3' 

但是,然后我得到以下错误。

 Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > java.lang.NoSuchMethodError: com.google.common.collect.FluentIterable.append(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable; 

你需要

 kapt 'com.google.guava:guava:19.0' kapt 'com.android.databinding:compiler:2.1.0' 

在匕首的依赖描述之前

在我的情况下添加version = "2.0.0 in

dataBinding { enabled = true version = "2.0.0" }

就像ubarua123AlokBansal8 发布的那样 ,解决了NoSuchMethodError