So aktivieren Sie Jack (Java Android Compiler Kit) in Android Studio


68

Ich habe mein Androidstudio 2.1 stabil aktualisiert. Gemäß Android Studio 2.1 unterstützt Android N Developer Preview Android Studio 2.1 unterstützt Jack (Java Android Compiler Kit) Compiler.

Wie füge ich Jack in Android Studio hinzu oder verwende es?

HINWEIS:

Die Jack-Toolchain ist gemäß Java 8 Language Feature Support unter Android veraltet . Sie können es jedoch weiterhin verwenden, um Java 8-Sprachfunktionen zu aktivieren, bis der Ersatz verfügbar ist.

Ab dieser Ankündigung vom 14. März 2017 ist die Jack-Toolchain veraltet. Jack war die Standard-Toolchain für Android-Builds für Android 6.0–8.1.

https://source.android.com/source/jack

Antworten:


137

Einzelheiten dazu, was für die Verwendung von Jack erforderlich ist und wie, finden Sie in der Dokumentation.

Hier ist der relevante Teil aus den Dokumenten, der beschreibt, build.gradlewie man Java 1.8 verwendet jackOptionsund einstellt compileOptions.

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

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

AKTUALISIEREN

Die Jack-Toolchain gilt laut diesem Beitrag nun als veraltet. In den kommenden Wochen wird laut Beitrag daran gearbeitet, Java 8-Funktionen als Teil des Android-Build-Systems nativ zu unterstützen.

In dem Beitrag wird auch erwähnt, dass die Migration von Jack auf die neue Methode wenig bis gar keine Arbeit erfordern sollte, falls Sie dennoch versuchen möchten, Java 8-Funktionen mit Jack zu aktivieren.

UPDATE 2 Vorschau der integrierten Unterstützung

Sie können jetzt die neue integrierte Unterstützung für Java 8 mit der neuesten Android Studio Preview 2.4 Preview 6 ausprobieren.

Weitere Informationen zum Aktivieren oder Migrieren von Jack oder Retrolambda finden Sie in der Dokumentation .


1
Genial! Danke für die nette Antwort.
pRaNaY

27
Ich erhalte immer noch eine Fehlermeldung:Could not find property 'options' on task ':app:compileDebugJavaWithJack'.
IgorGanapolsky

4
@IgorGanapolsky Ich habe einige Referenzen gefunden, die diesen Fehler mit Anmerkungsprozessoren verknüpfen. Verwenden Sie zufällig Bibliotheken, die Anmerkungen verarbeiten, wie Dolch oder Buttermesser? Es sieht so aus, als hätte Jack erst kürzlich die Möglichkeit erhalten, Anmerkungsprozessoren auf den Klassenpfad mit Android Gradle Plugin Version 2.2.0-alpha1 oder höher anzuwenden. Wenn Sie eine niedrigere Version verwenden, können Sie den Anmerkungsprozessor möglicherweise wie hier gezeigt selbst angeben .
George Mulligan

@ GeorgeMulligan In der Tat mit Anmerkungsprozessoren, aber mit Gradle Plugin 2.1.0.
IgorGanapolsky

10
@ GeorgeMulligan Nein, tut es nicht. Nicht einmal annähernd. Dutzende von Jack-Fehlern bekommen. Dieses Jack-Tool ist sehr dumm und sollte in der Hölle brennen.
IgorGanapolsky

12

Sie können den Jack-Compiler aktivieren, indem Sie die folgende Zeile in die Datei build.gradle einfügen.

android{

compileSdkVersion 23

buildToolsVersion "24rc2"

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


2

1- build.gradle (Modul)

defaultConfig {
        //remove jackOptions 
        jackOptions {
            enabled true
        }
    }

2- Wenn Sie einen Drittanbieter verwenden, der Java 8 verwendet build.gradle (Project)

buildscript {
    dependencies {
        //remove this line of your third-party dependency
        classpath 'PATH<VERSION>'
    }
}

3-entfernen Sie Retrolamda, wenden Sie das Plugin '.... labmda' an. Entfernen Sie diese Zeilen von Ihrem Modulgradle

4- zu build.gradle (Modul) hinzufügen

android {

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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.