40 votes

Avertissement: alerte: La version source "RELEASE_7" prise en charge par le processeur d'annotation "android.arch.lifecycle.LifecycleProcessor" est inférieure à -source "1.8".

Essayer de créer un exemple sous Android Studio 3 Canary 5 avec Architecture Components et Kotlin donne cet avertissement.

Quelqu'un peut-il me dire la raison?

Merci, Ove

Edit # 1: Ceci est un échantillon réalisé il y a quelque temps par Dan Lew

https://github.com/dlew/android-architecture-counter-sample

build.gradle:

 apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 25
    buildToolsVersion rootProject.ext.buildToolsVersion
    defaultConfig {
        applicationId "net.danlew.counter"
        minSdkVersion 23
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    compile "com.android.support:recyclerview-v7:${rootProject.ext.supportLibVersion}"
    compile "com.android.support:design:${rootProject.ext.supportLibVersion}"
    compile "com.android.support:cardview-v7:${rootProject.ext.supportLibVersion}"
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'

    compile "android.arch.lifecycle:extensions:${rootProject.archLifecycleVersion}"
    compile "android.arch.persistence.room:runtime:${rootProject.archRoomVersion}"
    compile "android.arch.persistence.room:rxjava2:${rootProject.archRoomVersion}"
    kapt "android.arch.lifecycle:compiler:${rootProject.archLifecycleVersion}"
    kapt "android.arch.persistence.room:compiler:${rootProject.archRoomVersion}"
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

    String butterKnifeVersion = '8.5.1'
    compile "com.jakewharton:butterknife:$butterKnifeVersion"
    kapt "com.jakewharton:butterknife-compiler:$butterKnifeVersion"

    compile 'io.reactivex.rxjava2:rxjava:2.1.0'

    String daggerVersion = '2.10'
    compile "com.google.dagger:dagger:$daggerVersion"
    kapt "com.google.dagger:dagger-compiler:$daggerVersion"

    String rxBindingVersion = '2.0.0'
    compile "com.jakewharton.rxbinding2:rxbinding:$rxBindingVersion"
    compile "com.jakewharton.rxbinding2:rxbinding-kotlin:$rxBindingVersion"

    compile 'com.jakewharton.timber:timber:4.5.1'

    compile 'com.jakewharton.rxrelay2:rxrelay:2.0.0'
}

repositories {
    mavenCentral()
}
 

27voto

Mark Points 420

Il existe un processeur d'annotation Java 8 maintenant que les composants arch sont stables, remplacez donc:

 "android.arch.lifecycle:compiler:${rootProject.archLifecycleVersion}"
 

avec

 "android.arch.lifecycle:common-java8:1.0.0"
 

19voto

MH. Points 21672

Juste l'ajout de cette réponse pour référence future: la même question a également été soulevée avec l'Android de l'Arche de Composants équipe tout à l'heure et la réponse officielle est:

(...) c'est juste un avertissement. Ne devrait pas être un problème.

Cela s'applique aux mises en garde suivant le format indiqué dans le titre de la question, et comprennent:

w: avertissement: prise en charge de la version source 'RELEASE_7" de processeur d'annotation 'android.arch.cycle de vie.LifecycleProcessor "moins que" de source de 1,8' w:

w: avertissement: prise en charge de la version source 'RELEASE_7" de processeur d'annotation 'android.arch.la persistance.chambre.RoomProcessor "moins que" de source de 1,8' w:

Fondamentalement, c'est l' javac vous informant que ces annotations processeurs ont été compilées avec et de générer du code pour un autre (plus) la version de Java (7) que votre module au niveau de la source est fixé à (Java 8). La raison pour cela est que le compilateur ne peut pas faire de promesses que les processeurs puis continuent de se comporter correctement [mais les développeurs peuvent et n'a dans ce cas particulier].

Notez que le message d'avertissement est émis si vous supprimez l' -Xlint compilateur drapeau, bref de l'aide d' -nowarn il ne peut pas être supprimé, malheureusement.

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