Migration du Flutter's app_plugin_loader Gradle

Bonjour à tous,

En compilant une app sur un device android j’ai eu le message suivant ce matin :

You are applying Flutter's app_plugin_loader Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block: https://flutter.dev/go/flutter-gradle-plugin-apply

You are applying Flutter's main Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block: https://flutter.dev/go/flutter-gradle-plugin-apply

Pour corriger le problème j’ai utilisé la méthode proposé par Flutter ici :

J’ai fait des choses sans trop comprendre ce que je faisais pour cette partie là (ce qui n’est pas toujours bon signe) :joy: :

...remembering to replace {agpVersion} and {kotlinVersion} with previously used values

En allant sur le site d’android j’ai trouvé que l’agp version était 8.3 et que la kotlinVersion était 1.9.20

Seulement, en lançant le code il m’indiquait que la version 8.3 n’était pas compatible, alors en regardant sur stackoverflow j’ai vu que quelqu’un avait utilisé cette version :

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version "7.3.0" apply false
    id "org.jetbrains.kotlin.android" version "1.9.22" apply false // Newer Version
}

Copier / coller, ca fonctionne … ou presque :
Dans le app/src/build.gradle j’avais ajouté des des dependencies en suivant le cours de Johan sur la monétisation.
Capture d’écran 2024-03-04 à 09.47.29
J’ai du mettre à la main le 1.9.22 à la place du $kotlin_version en supposant que c’était le même que celui que je venais d’ajouter.
Et la ca fonctionne, plus de message d’erreur.

Si ca peut aider des personnes qui rencontreraient le même problème tant mieux.

Par contre le fait d’avoir rentrer en dur tout un tas de numéro de version (sur des parties un peu obscure du sdk) que je ne connais pas bien me rassure qu’à moitié… Est ce que quelqu’un qui auraient de meilleurs connaissance sur le sujet sais s’il y a une « meilleure » façon de faire, tout du moins plus propre et « futurproof » ?

1 « J'aime »

Merci @Xababa_Dalabama pour ton partage.
Je viens d’être confronté au même problème. pas bien compris ce que j’ai fait non plus :melting_face:
Au final j’ai opté pour la même solution que toi à savoir mettre à la main ma version de Kotlin à la place du $kotlin_version
C’est cool, je pense que tu m’as permis d’éviter un bon arrachage de cheveux.
Merci à toi :pray:

1 « J'aime »

Le soucis viens souvent lorsque l’on met à jour Flutter vers une nouvelle version mais que l’on conserve les fichiers de projets générés avec une ancienne version de Flutter.

En effet, lors de la création d’un projet, plusieurs fichiers de configuration sont générés.
Sur les nouvelles versions de Flutter, ces fichiers de configurations peuvent être différents, mais si vous conservez votre ancien projet, alors vous pouvez rencontrer des erreurs ou ne pas profiter des dernières fonctionnalités de Flutter.

2 techniques pour corriger ce soucis : manuellement ou via Git

Via Git (recommandé)

Pas mal d’étapes, mais ce sont des étapes simples et non risquées

  1. Veillez à committer vos derniers changements ou à passer sur une autre branche
  2. Dupliquez votre dossier de projet (pour ne pas perdre les fichiers qui ne sont pas dans votre dépôt git)
  3. Dans le nouveau dossier, supprimez tous les fichiers et dossiers générés par Flutter sur un nouveau projet (fichiers de conf à la racine de votre projet, dossier ios, dossier android, dossier web, etc.)
  4. Depuis un terminal placez vous dans le dossier du projet où vous avez effacé tous les fichiers de conf.
  5. Entrez la commande flutter create .
  6. Tous les dossiers et fichiers supprimés devraient être recréés dans leur nouvelle version par flutter
  7. Dans votre client Git, vérifiez les modifications et faites un commit des nouveaux fichiers et des fichiers modifiés (Attention : ne committez pas vos fichiers supprimés dans Git)
  8. Si tout est ok vous pouvez pousser vos changements sur le repo, et faire un pull sur votre projet original

Manuellement

Il n’y a que 3 étapes mais ce sera beaucoup plus long/risqué à faire car chaque tâche est manuelle.

  1. Générer un nouveau projet avec la nouvelle version de flutter dans un autre dossier
  2. Comparer manuellement les fichiers de configuration (grade, fichiers Xcode, fichiers html pour flutter web, etc.)
  3. Reportez manuellement chaque modification dans votre projet initial

Je pense avoir des vidéos sur le sujet sur le cours flutter :

Si ça n’est pas le cas dis le moi @Xababa_Dalabama et j’en ajouterai une :wink:

Happy Coding!

1 « J'aime »

Hello, merci pour l’astuce :slight_smile:
il me semble que parfois c’est bien de commencer par essayer isolément la commande que tu as proposée:
flutter create .
qui suffit à régler pas mal de problèmes (mais sans oublier de faire une sauvegarde ou un commit préalable).