38 votes

Impossible de créer un projet avec Android Studio 3.0 + DataBinding + Kotlin

J'ai un énorme projet avec la liaison de données, kotlin, la dague. J'ai passé quelques jours à essayer de le construire à l'aide de plusieurs stackoverflow solutions et a décidé de demander personnellement.

Je suppose que certains des bibliothèques tierces utilise la liaison de données en raison de l'ajout de cette ligne n'aide pas.

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

Android Studio dit:

'androidProcessor les dépendances ne sont pas reconnus comme kapt annotation processeurs. S'il vous plaît changer le nom de la configuration à "kapt' pour ces artefacts: com.android.de liaison de données:compilateur:3.0.0'.

Ce que j'ai essayé et ça n'a pas aider:

   kapt {
    generateStubs = true
}

en local.propriétés: kotlin.incremental=false

une autre SORTE de 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'
}

15voto

Peppermint Paddy Points 1179

J'ai juste essayé avec similaires build.gradle paramètres dans une nouvelle kotlin projet, et il s'appuie. Malheureusement, je ne pouvais pas utiliser tous les libs et votre réglage exact, mais peut-être que c'est juste une question d'ordre. Voici mon

construire.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

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

est de travailler pour moi. Peut-être l'essayer dans un nouveau projet de trop et vérifier si cela fonctionne, et puis, lentement, d'appliquer vos autres libs un par un. Espérons que vous met sur la bonne voie!

-8voto

Vasco Points 109

Il suffit de retirer la bibliothèque Kotlin. Android Stidio 3.0 le prend en charge par défaut.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X