无法使用Android Studio 3.0 + DataBinding + Kotlin构建项目

我有一个庞大的项目,数据绑定,kotlin,匕首。 我花了几天的时间尝试使用几个stackoverflow的解决方案来构建它,并决定亲自问一下。

我假设一些第三方库使用数据绑定,因为添加这条线没有帮助。

kapt 'com.android.databinding:compiler:3.0.0' 

Android Studio说:


‘androidProcessor’依赖不会被识别为kapt注释处理器。 请将配置名称更改为“kapt”以获取这些工件:“com.android.databinding:compiler:3.0.0”。


我所尝试过的并没有帮助:

  kapt { generateStubs = true } 

在local.properties中: kotlin.incremental=false

另一个SO解决方案没有帮助

 kapt ('com.android.databinding:compiler:3.0.0'){ force = true } 

我的build.gradle

  apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'blockcanaryex' apply plugin: 'kotlin-kapt' apply plugin: 'newrelic' apply plugin: 'kotlin-android-extensions' def props = new Properties() file("newrelic.properties").withInputStream { props.load(it) } android { compileSdkVersion 26 buildToolsVersion '26.0.2' applicationVariants.all { variant -> variant.outputs.each { output -> def stdout = new ByteArrayOutputStream() exec { commandLine "git", "symbolic-ref", "--short", "HEAD" standardOutput = stdout } def branch = stdout.toString().trim() branch = "branch.$branch" if (project.hasProperty("buildNumber")) { def buildNumber = project.property("buildNumber") output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + branch + "-" + versionName + "." + versionCode + "." + buildNumber + ".apk")) } else { output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + branch + "-" + versionName + "." + versionCode + ".apk")) } } } def version = "4.15" defaultConfig { buildConfigField "String", "TOKEN", "\"" + props.getProperty("token") + "\"" applicationId "xxx" minSdkVersion 19 targetSdkVersion 26 versionName version versionCode 260 multiDexEnabled true vectorDrawables.useSupportLibrary = true } signingConfigs { release { storeFile file("xxx") storePassword "xxx" keyAlias "xxx" keyPassword "xxx" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.release } debug { versionNameSuffix ".debug" } } flavorDimensions "prod","stag" productFlavors { production { dimension "prod" } staging { dimension "stag" applicationId "app.id" versionName(version + ".staging") } } packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude '.readme' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 } dexOptions { javaMaxHeapSize "4g" } dataBinding { enabled = true } } repositories { jcenter() maven { url "https://jitpack.io" } maven { url 'https://bitbucket.org/gryphteam/maven/raw/release' } maven { url 'https://maven.google.com/' name 'Google' } } def supportVersion = "26.1.0" def playServicesVersion = "11.6.0" def retrofitVersion = "2.3.0" dependencies { implementation 'com.jakewharton:butterknife:6.1.0' implementation('de.keyboardsurfer.android.widget:crouton:1.8.5@aar') { exclude group: 'com.google.android', module: 'support-v4' } implementation 'com.google.dagger:dagger:2.10' kapt 'com.google.dagger:dagger-compiler:2.10' kapt 'com.android.databinding:compiler:3.0.0' implementation 'de.greenrobot:eventbus:2.4.0' implementation 'com.mcxiaoke.volley:library:1.0.19' implementation 'com.google.code.gson:gson:2.8.0' implementation "com.google.android.gms:play-services-places:$playServicesVersion" implementation "com.google.android.gms:play-services-plus:$playServicesVersion" implementation "com.google.android.gms:play-services-analytics:$playServicesVersion" implementation "com.google.android.gms:play-services-auth:$playServicesVersion" implementation "com.google.android.gms:play-services-gcm:$playServicesVersion" implementation "com.google.android.gms:play-services-ads:$playServicesVersion" implementation "com.android.support:appcompat-v7:$supportVersion" implementation "com.android.support:support-v13:$supportVersion" implementation "com.android.support:recyclerview-v7:$supportVersion" implementation "com.android.support:design:$supportVersion" implementation "com.android.support:support-annotations:$supportVersion" implementation 'com.android.support.constraint:constraint-layout:1.0.2' implementation 'com.android.support:multidex:1.0.2' implementation 'commons-io:commons-io:2.4' implementation 'org.apache.commons:commons-lang3:3.1' implementation files('libs/comscore.jar') implementation 'com.squareup.picasso:picasso:2.5.2' implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2' implementation 'com.github.deano2390:MaterialShowcaseView:1.0.5' implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' implementation 'com.google.ads.mediation:facebook:4.26.1.0' implementation 'com.facebook.android:audience-network-sdk:4.26.1' implementation 'org.jboss.netty:netty:3.2.10.Final' //Testing testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:1.10.19' androidTestImplementation 'com.android.support:multidex:1.0.2' androidTestImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test.espresso:espresso-web:3.0.1' androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2') { exclude group: 'com.android.support', module: 'support-annotations:22.2.1' } androidTestImplementation('com.android.support.test:runner:0.3') { exclude group: 'com.android.support', module: 'support-annotations:22.2.1' } androidTestImplementation('com.android.support.test:rules:0.3') { exclude group: 'com.android.support', module: 'support-annotations:22.2.1' } androidTestImplementation('com.android.support.test.espresso:espresso-intents:2.2') { exclude group: 'com.android.support', module: 'support-annotations:22.2.1' } androidTestImplementation('com.android.support.test.espresso:espresso-contrib:2.2') { exclude group: 'com.android.support', module: 'app-compat' exclude group: 'com.android.support', module: 'support-v4' exclude group: 'com.android.support', module: 'support-annotations:22.2.1' exclude module: 'recyclerview-v7' } androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3' androidTestImplementation "com.android.support:support-annotations:$supportVersion" implementation project(':eventsource_android-release') implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.0' debugImplementation 'com.letv.sarrsdesktop:BlockCanaryExJRT:0.9.5.3' releaseImplementation 'com.letv.sarrsdesktop:BlockCanaryExJRTNoOp:0.9.5.3' testImplementation 'com.letv.sarrsdesktop:BlockCanaryExJRTNoOp:0.9.5.3' implementation 'me.mvdw.recyclerviewmergeadapter:recyclerviewmergeadapter:2.0.0' debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.1' releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1' testImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1' implementation "com.squareup.retrofit2:retrofit:$retrofitVersion" implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0' implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion" implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion" implementation 'io.reactivex.rxjava2:rxjava:2.1.2' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' implementation 'com.github.ReactiveX:RxKotlin:2.1.0' implementation 'com.gojuno.koptional:koptional-rxjava2-extensions:1.2.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.newrelic.agent.android:android-agent:5.14.0' implementation 'org.jsoup:jsoup:1.10.3' } 

我刚刚尝试了类似的build.gradle设置在一个新的和新鲜的kotlin项目,并建立。 不幸的是我不能使用你的所有库和你的确切设置,但也许这只是一个顺序问题。 这是我的

的build.gradle

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-android-extensions' kapt { generateStubs = true } android { compileSdkVersion 26 defaultConfig { applicationId "nice.fontaine.kottest" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation 'com.jakewharton:butterknife:6.1.0' annotationProcessor 'com.jakewharton:butterknife:6.1.0' implementation('de.keyboardsurfer.android.widget:crouton:1.8.5@aar') { exclude group: 'com.google.android', module: 'support-v4' } implementation 'com.google.dagger:dagger:2.10' kapt 'com.google.dagger:dagger-compiler:2.10' kapt 'com.android.databinding:compiler:3.0.0' implementation 'de.greenrobot:eventbus:2.4.0' implementation 'com.mcxiaoke.volley:library:1.0.19' implementation 'com.google.code.gson:gson:2.8.0' implementation "com.google.android.gms:play-services-places:11.6.0" implementation "com.google.android.gms:play-services-plus:11.6.0" implementation "com.google.android.gms:play-services-analytics:11.6.0" implementation "com.google.android.gms:play-services-auth:11.6.0" implementation "com.google.android.gms:play-services-gcm:11.6.0" implementation "com.google.android.gms:play-services-ads:11.6.0" implementation "com.android.support:appcompat-v7:26.1.0" implementation "com.android.support:support-v13:26.1.0" implementation "com.android.support:recyclerview-v7:26.1.0" implementation "com.android.support:design:26.1.0" implementation "com.android.support:support-annotations:26.1.0" implementation 'com.android.support.constraint:constraint-layout:1.0.2' implementation 'com.android.support:multidex:1.0.2' implementation 'commons-io:commons-io:2.4' implementation 'org.apache.commons:commons-lang3:3.1' implementation 'com.squareup.picasso:picasso:2.5.2' implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' implementation 'com.google.ads.mediation:facebook:4.26.1.0' implementation 'com.facebook.android:audience-network-sdk:4.26.1' implementation 'org.jboss.netty:netty:3.2.10.Final' //Testing testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:1.10.19' androidTestImplementation 'com.android.support:multidex:1.0.2' androidTestImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test.espresso:espresso-web:3.0.1' androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2') { exclude group: 'com.android.support', module: 'support-annotations:22.2.1' } androidTestImplementation('com.android.support.test:runner:0.3') { exclude group: 'com.android.support', module: 'support-annotations:22.2.1' } androidTestImplementation('com.android.support.test:rules:0.3') { exclude group: 'com.android.support', module: 'support-annotations:22.2.1' } androidTestImplementation('com.android.support.test.espresso:espresso-intents:2.2') { exclude group: 'com.android.support', module: 'support-annotations:22.2.1' } androidTestImplementation('com.android.support.test.espresso:espresso-contrib:2.2') { exclude group: 'com.android.support', module: 'app-compat' exclude group: 'com.android.support', module: 'support-v4' exclude group: 'com.android.support', module: 'support-annotations:22.2.1' exclude module: 'recyclerview-v7' } androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3' androidTestImplementation "com.android.support:support-annotations:26.1.0" implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.0' debugImplementation 'com.letv.sarrsdesktop:BlockCanaryExJRT:0.9.5.3' releaseImplementation 'com.letv.sarrsdesktop:BlockCanaryExJRTNoOp:0.9.5.3' testImplementation 'com.letv.sarrsdesktop:BlockCanaryExJRTNoOp:0.9.5.3' implementation 'me.mvdw.recyclerviewmergeadapter:recyclerviewmergeadapter:2.0.0' debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.1' releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1' testImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1' implementation "com.squareup.retrofit2:retrofit:2.3.0" implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0' implementation "com.squareup.retrofit2:converter-gson:2.3.0" implementation "com.squareup.retrofit2:adapter-rxjava2:2.3.0" implementation 'io.reactivex.rxjava2:rxjava:2.1.2' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' implementation 'com.gojuno.koptional:koptional-rxjava2-extensions:1.2.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.newrelic.agent.android:android-agent:5.14.0' implementation 'org.jsoup:jsoup:1.10.3' } 

至少我可以validation这个测试

 kapt 'com.android.databinding:compiler:3.0.0' 

正在为我工​​作。 也许尝试在一个新的项目,并检查是否有效,然后慢慢地应用你的其他库一个接一个。 希望能让你走上正轨!

只要删除Kotlin库。 Android Stidio 3.0默认支持它。