J'ai un énorme projet avec liaison de données, Kotlin, poignard. J'ai passé quelques jours à essayer de le construire en utilisant plusieurs solutions de stackoverflow et j'ai décidé de le demander personnellement.
Je suppose que certaines bibliothèques tierces utilisent la liaison de données car l’ajout de cette ligne n’aide en rien.
kapt 'com.Android.databinding:compiler:3.0.0'
Android Studio dit:
Les dépendances 'androidProcessor' ne seront pas reconnues en tant que processeurs d'annotation kapt. Modifiez le nom de la configuration en "kapt" pour ces artefacts: "com.Android.databinding: compiler: 3.0.0".
Ce que j'ai essayé et ça n'a pas aidé:
kapt {
generateStubs = true
}
dans local.properties: kotlin.incremental=false
un autre SO solution n'a pas aidé):
kapt ('com.Android.databinding:compiler:3.0.0'){
force = true
}
mon 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'
}
Je viens d’essayer avec des paramètres similaires build.gradle
Dans un nouveau projet Kotlin, et cela se construit. Malheureusement, je ne pouvais pas utiliser toutes vos bibliothèques et votre réglage exact, mais c'est peut-être une question d'ordre. Voici mon
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'
}
Au moins, je peux vérifier avec ce test que
kapt 'com.Android.databinding:compiler:3.0.0'
travaille pour moi. Essayez peut-être aussi dans un nouveau projet et vérifiez si cela fonctionne, puis appliquez lentement vos autres bibliothèques une par une. J'espère que cela vous mènera!