Can't build project with Android Studio 3.0 + DataBinding + Kotlin
I just tried with similar build.gradle
settings in a new and fresh kotlin project and it builds. Unfortunately I couldn't use all your libs and your exact setting but maybe it's just a matter of order. Here is my
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'
}
At least I can verify with this test that
kapt 'com.android.databinding:compiler:3.0.0'
is working for me. Maybe try it in a new project too and check if this works and then slowly apply your other libs one by one. Hope that gets you on track!
Dennis Zinkovski
Updated on June 12, 2022Comments
-
Dennis Zinkovski almost 2 years
I have a huge project with databinding, kotlin, dagger. I spent a few days trying to build it using several stackoverflow's solutions and decided to ask it personally.
I assume some of third party libraries uses databinding because adding this line doesn't help.
kapt 'com.android.databinding:compiler:3.0.0'
Android Studio says:
'androidProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'com.android.databinding:compiler:3.0.0'.
What I've tried and it didn't help:
kapt { generateStubs = true }
in local.properties:
kotlin.incremental=false
another SO solution didn't help:
kapt ('com.android.databinding:compiler:3.0.0'){ force = true }
my 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' }
-
Dennis Zinkovski over 6 yearsDo you mean this line
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
? -
Dennis Zinkovski over 6 yearsI've tried it, doesn't help, build fails with same message
-
Zoe stands with Ukraine over 6 yearsIt won't compile without the library. It's like saying
remove the AppCompat library to use the AppCompatActivity properly
-
Dennis Zinkovski over 6 yearsI don't know exactly why it helped, because I tried same config, but now I wrote '3.0.1' ver. of plugin and databinding compiler. Maybe they fixed some issues in the new plugin, anyway, thanks, it works.
-
Admin about 6 yearsThe problem comes from
dataBinding {enabled = true}
, so for sure, you don't have any problem as you're not using it. But it's required to use Data Binding