web-dev-qa-db-de.com

Was ist Jetifier?

Was ist Jetifier? Um beispielsweise ein neues Projekt mit den in AndroidX enthaltenen Abhängigkeiten zu erstellen, muss in diesem neuen Projekt die folgende Zeile zur Datei gradle.properties hinzugefügt werden:

Android.enableJetifier=true

Was bedeutet es also - "Jetifier aktivieren"?

73
Ksenia

In diesem Jahr hat Google I/O (18) Jetpack angekündigt, eine Sammlung von Bibliotheken, die Entwicklern das Leben erleichtern soll.

Jetpack enthält zuvor eingeführte Android Architekturkomponenten (ViewModel, Room, Paging, LiveData usw.) sowie neu eingeführte Architekturkomponenten wie WorkManager, Navigation. Abgesehen davon hat Jetpack auch andere Bibliotheken wie AndroidX, AndroidKTX usw.

AndroidX ist eine neue Paketstruktur für Android Support-Bibliotheken wie Support, Datenbindung, Design usw.

z.B. Jetzt werden Entwickler androidx.databinding. anstelle von Android.databinding. verwenden, während sie Bibliotheken in unsere Projekte importieren

Auf diese Weise kann Google SemVer oder Semantic Versioning zu den Bibliothekspaketen hinzufügen. Für Entwickler bedeutet dies, dass wir nicht für alle Support-Bibliotheken dieselbe Support-Bibliotheksversion verwenden müssen. Jede Support- oder besser gesagt AndroidX-Bibliothek behält ihre eigene Versionierung bei.

Ein weiterer Vorteil für Entwickler ist, dass wir nicht für alle Support-Bibliotheken in unserem Projekt die gleiche Version beibehalten müssen.

Über Jetifier konvertiert es alle Support-Pakete der Abhängigkeit zum Zeitpunkt der Erstellung. Gemäß der offiziellen Dokumentation von Jetifier

Das Jetifier-Tool migriert unterstützungsbibliotheksabhängige Bibliotheken, um stattdessen auf die entsprechenden AndroidX-Pakete zu vertrauen. Mit dem Tool können Sie eine einzelne Bibliothek direkt migrieren, anstatt das mit Android Studio mitgelieferte Android Gradle-Plugin zu verwenden.

Um AndroidX in einem Projekt zu verwenden, müssen wir targetSdkVersion für unser Projekt auf 28 setzen und die folgenden 2 Zeilen in die gradle.properties -Datei einfügen.

Android.useAndroidX=true

Android.enableJetifier=true

Ich hoffe, dies beantwortet Ihre Anfrage.

EDIT

Dieser Link hat eine Zuordnung aller Unterstützungsbibliothekskomponenten mit ihrem AndroidX-Gegenstück.

Siehe auch This Blog für eine detaillierte Erklärung zu AndroidX

41
silwar

Vorausgesetzt, Sie kennen sich mit AndroidX aus. Wenn nicht, lesen Sie bitte @ diesen Beitrag .

Jetifier konvertiert support libraries all Ihrer Abhängigkeiten automatisch in AndroidX, wenn Sie es nicht auf true setzen, hat Ihr Projekt beides, die Unterstützung ( Wurde nach 28.0.0 veraltet ) und AndroidX Paket, das redundant ist.

Zum Beispiel

Wenn Sie PhotoView.Java in Ihrer Abhängigkeit haben. Hierfür wird die Unterstützungsbibliothek AppCompatImageView verwendet.

import Android.support.v7.widget.AppCompatImageView;

Diese Klasse wurde jetzt in das Paket androidx verschoben. Wie wird PhotoView androidx AppCompatImageView erhalten? Und App läuft noch im Gerät.

Wer hat das gemacht?

Jetifier , der alle Support-Pakete der Abhängigkeit zum Erstellungszeitpunkt konvertiert.

Jetifier konvertiert Android.support.v7.widget.AppCompatImageView in androidx.appcompat.widget.AppCompatImageView, während das Projekt erstellt wird.

Fazit

Die Aktivierung von Jetifier ist wichtig, wenn Sie von Support Libraries nach AndroidX migrieren.

Lesen Sie diesen Beitrag , um mehr über AndroidX zu erfahren.

Die Info

In Ihrem Code werden möglicherweise Kompilierungsfehler angezeigt, nachdem Jetifier bei Verwendung von Abhängigkeitsklassen aktiviert wurde. Diese können Sie entfernen, indem Sie .idea, .gradle löschen und das Projekt erneut synchronisieren.

image2

image1

54
Khemraj

Jetifier hilft bei der Migration eines Android-Projekts zu AndroidX .

Jetifier hilft bei der Erstellung von Bibliotheken von Drittanbietern kompatibel mit Ihrem AndroidX-Projekt.

Wenn Sie in Ihrem Projekt Android keine Bibliothek eines Drittanbieters verwenden, müssen Sie Jetifier nicht verwenden, da Jetifier nur dazu beiträgt, "die Bibliothek eines Drittanbieters mit Ihrem Projekt kompatibel zu machen", falls Sie dies möchten Migration auf AndroidX. Damit Ihr Projekt Jetifier verwendet, schreiben Sie den folgenden Code in gradle.properties .

Android.enableJetifier=true
Android.useAndroidX=true

Wenn Sie nicht auf AndroidX migrieren und die vorherige Methode zur Verwendung von Android Bibliotheken verwenden (z. B .: com.Android.support ) müssen diese Bibliotheken von Drittanbietern nicht kompatibel gemacht werden, da diese Bibliotheken von Drittanbietern bereits mit der vorherigen Art der Verwendung von Android Bibliotheken kompatibel sind. In diesem Fall brauchen Sie Jetifier nicht zu verwenden. Jetzt müssen Sie die oben angegebenen Zeilen nicht mehr schreiben, oder Sie können einfach wie folgt schreiben, um die Werte in Zukunft zu ändern und auf androidx umzusteigen:

Android.enableJetifier=false
Android.useAndroidX=false
5
Abhishek Kumar

Jetifier

Der Jetifier ist ein praktisches Tool, das Ihr dependencies zur Erstellungszeit automatisch auf AndroidX migriert. Ohne sie benötigen Sie jede Abhängigkeit, die Sie verwenden, um eine AndroidX-Version zu haben, bevor Sie migrieren können. Dies wird wahrscheinlich für einige Zeit nicht der Fall sein.

Es gibt eine wichtige Einschränkung zu beachten: Der Jetifier funktioniert nur bei verpackten Artefakten. Es funktioniert nicht mit Ihrem Quellcode, den Sie selbst aktualisieren müssen

um AndroidX zu aktivieren, müssen Sie Ihrer gradle.properties -Datei 2 Flags hinzufügen. Das erste Flag weist das Android Plugin an, AndroidX Pakete anstelle von AppCompat zu verwenden, und das zweite Flag aktiviert das Jetifier:

Android.useAndroidX=true
Android.enableJetifier=true

Lesen Sie this , this , um mehr über AndroidX zu erfahren

0
Basi