68 votes

Comment activer Jack (Java Android Compiler Kit) dans Android studio ?

Je suis en train de mettre à jour mon androidstudio 2.1 stable. Android Studio 2.1 prend en charge l'aperçu pour développeurs d'Android N Prise en charge d'Android studio 2.1 Jack (Java Android Compiler Kit) compilateur .

Comment ajouter ou utiliser Jack dans Android studio ?

NOTE :

La chaîne d'outils Jack est obsolète, conformément à la directive Prise en charge des fonctionnalités linguistiques de Java 8 sur Android . Cependant, vous pouvez continuer à l'utiliser pour activer les fonctionnalités du langage Java 8 jusqu'à ce que le remplacement soit disponible.

À partir de cette annonce du 14 mars 2017, la chaîne d'outils Jack est dépréciée. Jack était la chaîne d'outils de construction Android par défaut pour Android 6.0-8.1.

https://source.Android.com/source/jack

137voto

George Mulligan Points 5935

Les détails sur ce qui est requis pour utiliser Jack et comment le faire peuvent être trouvés dans le site Web de la Commission européenne. documentation .

Voici la partie pertinente de la documentation qui y figure build.gradle sur la façon d'utiliser jackOptions et définir les compileOptions pour java 1.8.

android {
    ...
    defaultConfig {
        ...
        jackOptions {
            enabled true
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

UPDATE

La chaîne d'outils Jack est maintenant considérée comme dépréciée selon ce poste et des travaux sont en cours pour prendre en charge nativement les fonctionnalités de Java 8 dans le cadre du système de construction d'Android dans les semaines à venir, selon le post.

L'article mentionne également que la migration de Jack vers la nouvelle méthode ne devrait nécessiter que peu ou pas de travail, au cas où vous voudriez toujours essayer d'activer les fonctionnalités de Java 8 avec Jack.

UPDATE 2 Preview Support intégré

Vous pouvez maintenant essayer le nouveau support intégré pour Java 8 en utilisant la dernière version 2.4 preview 6 d'Android Studio.

Pour plus d'informations sur la façon de l'activer ou de migrer à partir de Jack ou Retrolambda, consultez le site Web de la Commission européenne. documentation .

1 votes

Génial ! Merci pour cette belle réponse.

27 votes

Je reçois toujours une erreur : Could not find property 'options' on task ':app:compileDebugJavaWithJack'.

4 votes

@IgorGanapolsky J'ai trouvé quelques références qui lient cette erreur aux processeurs d'annotation. Utilisez-vous par hasard des bibliothèques qui traitent les annotations, comme dagger ou butterknife ? Il semble que Jack n'ait que récemment obtenu la possibilité d'appliquer des processeurs d'annotation sur le classpath avec le plugin Android Gradle version 2.2.0-alpha1 ou supérieure. Si vous utilisez une version inférieure, vous pouvez spécifier vous-même le processeur d'annotation comme indiqué ci-dessous. aquí .

12voto

Raghav Thakkar Points 668

Vous pouvez activer le compilateur jack en ajoutant la ligne suivante dans le fichier build.gradle.

android{

compileSdkVersion 23

buildToolsVersion "24rc2"

defaultConfig {
    ...
    jackOptions {
        enabled true
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}}

6voto

kenmark Points 195

Jack/Jill sera abandonné dans un avenir proche, voir le post Google. https://Android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html

0voto

nicolas asinovich Points 500

Insérer dans le bloc android{}

jackOptions {
            enabled true
        }

la solution

0 votes

Merci pour votre réponse. Mais maintenant Chaîne d'outils Jack est déprécié. Consultez source.Android.com/source/jack

0voto

Java 8 est supporté par les versions 3 d'Android Studio, tout ceci jackOptions n'est plus nécessaire.

Jack n'est plus supporté et vous devriez d'abord désactiver Jack pour utiliser le support amélioré de Java 8 intégré dans la chaîne d'outils par défaut.

Pour plus de détails, consultez ce lien :

https://developer.Android.com/studio/write/java8-support.html

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