AndroidX Migration

AndroidX är en stor förbättring av det ursprungliga Android Support Library.

Det tillhandahåller androidx.* paketbibliotek, frikopplade från plattformens API.Det innebär att det erbjuder bakåtkompatibilitet och uppdateras oftare än Android-plattformen.

Vanliga frågor

Hur migrerar jag mitt befintliga app-, plugin- eller host-editable-modulprojekt till AndroidX?

Du behöver Android Studio 3.2 eller senare. Om du inte har det installerat kan du hämta den senaste versionen från webbplatsenAndroid Studio.

  1. Öppna Android Studio.
  2. Välj Öppna ett befintligt Android Studio-projekt.
  3. Öppna katalogen android i din app.
  4. Vänta tills projektet har synkroniserats framgångsrikt. (Detta sker automatiskt när du öppnar projektet, men om det inte sker väljer du Sync Project with Gradle Files från menyn File).
  5. Välj Migrate to AndroidX från menyn Refactor.
  6. Om du ombeds att säkerhetskopiera projektet innan du fortsätter markerar du Backup project as Zip file (säkerhetskopiera projektet som en zip-fil) och klickar sedan på Migrate. Slutligen sparar du zip-filen på önskad plats. Välj säkerhetskopieringsprojekt som zip-fil
  7. I förhandsgranskningen av refaktorisering visas listan över ändringar. Slutligen klickar du på Do Refactor: En animation av sidövergången nedifrån och upp på Android
  8. Det var allt! Du har lyckats migrera ditt projekt till AndroidX.

För att avsluta, om du har migrerat ett insticksprogram, publicera den nya AndroidX-versionen till pub och uppdatera din CHANGELOG.md för att ange att den nya versionen är kompatibel med AndroidX.

Vad gör jag om jag inte kan använda Android Studio?

Du kan skapa ett nytt projekt med hjälp av Flutter-verktyget och sedan flytta Dart-koden och tillgångarna till det nya projektet.

För att skapa ett nytt projekt kör du:

flutter create -t <project-type> <new-project-path>

Add to App

Om ditt Flutter-projekt är en modultyp som du kan lägga till i en befintlig Android-app och innehåller en .android-katalog, lägger du till följande rad i pubspec.yaml:

 module: ... androidX: true # Add this line.

Slutligt kör du flutter clean.

Om din modul istället innehåller en android-katalog följer du stegen i föregående avsnitt.

Hur vet jag om mitt projekt använder AndroidX?

Från och med Flutter v1.12.13 använder nya projekt som skapas med flutter create -t <project-type> AndroidX som standard.

Projekt som skapats före denna Flutter-version får inte vara beroende av någon gammal byggnadsartefakt eller gammal supportbiblioteksklass.

I ett app- eller modulprojekt måste filen android/gradle.properties eller .android/gradle.properties innehålla:

android.useAndroidX=trueandroid.enableJetifier=true

Hur gör jag om jag inte migrerar min app eller modul till AndroidX?

Din app kan fortsätta att fungera. Att kombinera AndroidX- och supportartefakter rekommenderas dock i allmänhet inte eftersom det kan leda till beroendekonflikter eller andra typer av Gradle-fel. När fler plugins migreras till AndroidX kommer plugins som är beroende av Android-kärnbibliotek sannolikt att orsaka byggfel.

Vad händer om min app migreras till AndroidX, men inte alla plugins som jag använder?

Flutter-verktyget använder Jetifier för att automatiskt migrera Flutter-plugins som använder supportbiblioteket till AndroidX, så du kan använda samma plugins även om de inte har migrerats till AndroidX ännu.

Jag har problem med att migrera till AndroidX

Öppna ett ärende på GitHub och lägg till i titeln på ärendet.

Lämna en kommentar