Was ist Jetifier? Um beispielsweise ein neues Projekt mit den von AndroidX gepackten Abhängigkeiten zu erstellen, muss dieses neue Projekt der Datei gradle.properties die folgende Zeile hinzufügen :
android.enableJetifier=true
Was bedeutet es also - "Jetifier aktivieren"?
implementation "com.commonsware.cwac:document:0.3.0"
in Ihremdependencies
. Diese Bibliotheksversion hat eine transitive Abhängigkeit voncom.android.support:support-annotations:27.0.2
. Sie möchten jedochandroidx.annotation:annotation
als Teil der Verwendung anderer AndroidX-Abhängigkeiten verwenden. Jetifier würde irgendwie aktualisieren, umcom.commonsware.cwac:document
zu verwendenandroidx.annotation:annotation
.Antworten:
Das diesjährige Google I / O (18) hat Google Jetpack angekündigt, das eine Sammlung von Bibliotheken enthält, um Entwicklern das Leben zu erleichtern.
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-Supportbibliotheken wie Support, Datenbindung, Design usw.
zB jetzt auf Stationen verwenden Entwickler androidx.databinding. anstelle von android.databinding. beim Importieren von Bibliotheken in unsere Projekte
Dadurch kann Google SemVer oder Semantic Versioning in seine Bibliothekspakete aufnehmen. Für Entwickler bedeutet dies, dass wir nicht für alle Support-Bibliotheken dieselbe Support-Bibliotheksversion verwenden müssen. Jede Unterstützung 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 dieselbe Version beibehalten müssen.
Über Jetifier werden alle Support-Pakete von Abhängigkeiten zur Erstellungszeit konvertiert. Gemäß offizieller Dokumentation von Jetifier
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 Datei gradle.properties einfügen .
Ich hoffe, dies wird Ihre Frage beantworten.
BEARBEITEN
Dieser Link enthält eine Zuordnung aller Support-Bibliothekskomponenten zu ihrem AndroidX-Gegenstück.
Weitere Informationen zu AndroidX finden Sie in diesem Blog
quelle
Vorausgesetzt, Sie kennen sich aus
AndroidX
. Wenn nicht, lesen Sie bitte @ diesen Beitrag .Beispielsweise
Wenn Sie
PhotoView.java
in Ihrer Abhängigkeit haben. Das nutzt die Support-BibliothekAppCompatImageView
.Diese Klasse wird jetzt in das
androidx
Paket verschoben. Wie wirdPhotoView
Androidx erhaltenAppCompatImageView
? Und die App läuft immer noch auf dem Gerät.Wer hat diesen Lauf gemacht?
Jetifier konvertiert
android.support.v7.widget.AppCompatImageView
zu ,androidx.appcompat.widget.AppCompatImageView
während das Projekt zu bauen.Fazit
Das Aktivieren von Jetifier ist wichtig, wenn Sie von Support Libraries auf AndroidX migrieren .
In diesem Beitrag erfahren Sie mehr über AndroidX.
Die Info
Ihr Code zeigt möglicherweise Fehler bei der Kompilierung an, nachdem Sie Jetifier aktiviert haben, während Sie Abhängigkeitsklassen verwenden. die Sie durch das Löschen entfernen
.idea
,.gradle
und Neu-Sync - Projekt.quelle
Jetifier hilft bei der Migration eines Android-Projekts auf AndroidX .
Jetifier hilft dabei, die Bibliothek eines Drittanbieters mit Ihrem AndroidX-Projekt kompatibel zu machen.
Wenn Sie in Ihrem Android-Projekt 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 auf AndroidX migrieren. Damit Ihr Projekt Jetifier verwendet, schreiben Sie den folgenden Code in gradle.properties .
Wenn Sie nicht auf AndroidX migrieren und die vorherige Art der 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 Methode von kompatibel sind mit Android-Bibliotheken. In diesem Fall müssen Sie Jetifier nicht verwenden. Jetzt müssen Sie keine Zeilen mehr schreiben, oder Sie können einfach wie folgt schreiben, um die Werte in Zukunft zu ändern und zu AndroidX zu wechseln: -
quelle
Jetifier
Der Jetifier ist ein praktisches Tool,
dependencies
zu dem SieAndroidX
beim Erstellen automatisch migrieren . Ohne sie benötigen Sie jede Abhängigkeit, die Sie verwenden, um eine AndroidX-Version zu haben, bevor Sie migrieren können, und das wird wahrscheinlich für einige Zeit nicht passieren.Es gibt eine wichtige Einschränkung zu beachten: Der Jetifier funktioniert nur mit verpackten Artefakten. Es funktioniert nicht mit Ihrem Quellcode, den Sie voraussichtlich selbst aktualisieren werden
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 zu verwendenAppCompat
, und das zweite Flag aktiviert FolgendesJetifier
:Sehen Sie diese , diese Post zu verstehen , mehr über AndroidX
quelle
Aus dem offiziellen Dokument
Es ist nützlich für die Kompatibilität. Wenn ein Verbraucher
androidX
und ein Produzent verwendetsupport
. Zum Beispiel, wenn Ihr ProjektAndroidX
eine Abhängigkeit verwenden möchte, diesupport library
anstelle vonAndroidX
[Beispiel] verwendet wird.quelle
Fügen Sie diese beiden Zeilen hinzu android.useAndroidX = true
android.enableJetifier = true
in buid.gradle Es hat bei mir funktioniert
quelle