web-dev-qa-db-fra.com

Impossible de construire le projet avec Android Studio 3.0 + DataBinding + Kotlin

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'
}
38
Dennis Zinkovski

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!

15
Peppermint Paddy