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

pRaNaY
quelle

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 .

George Mulligan
quelle
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
}}
Raghav Thakkar
quelle
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
    }
}
Abuzeid
quelle
0

in Block einfügen android{}

jackOptions {
            enabled true
        }

es Lösung

nicolas asinovich
quelle
Danke für deine Antwort. Aber jetzt ist Jack Toolchain veraltet. Überprüfen Sie source.android.com/source/jack
pRaNaY
0

Java 8 wird in Android Studio 3-Versionen unterstützt, dies alles jackOptionsist nicht mehr erforderlich.

Jack wird nicht mehr unterstützt , und Sie sollten Jack zuerst deaktivieren, um die verbesserte Java 8-Unterstützung zu verwenden, die in der Standard-Toolchain integriert ist.

Für weitere Informationen lesen Sie diesen Link:

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

Maytham-ɯɐɥʇʎɐɯ
quelle