web-dev-qa-db-fra.com

comment mettre à jour les sources de packages aar locaux

J'ai créé deux Android Studio. L'une d'entre elles est une bibliothèque aar. J'ai utilisé cette bibliothèque aar dans la deuxième application. J'ai ajouté une bibliothèque aar en utilisant Fichier-> Nouveau-> Nouveau module-> Importer AAR/JAR Packages option. Après cela, je peux voir les sources décompilées de ma bibliothèque aar. Lorsque je mets à jour la bibliothèque aar, je copie et colle un nouveau fichier aar dans le dossier de mon projet d'application. Mais cette fois Android Studio montre anciennes sources décompilées. Mais compiler une nouvelle source avec succès. Comment puis-je mettre à jour les sources décompilées dans Android Studio? lorsque j'importe un fichier aar implementation project(':app-debug') la ligne a été ajoutée mon build.gradle fichier.

J'utilise Android Studio 3.0.1

ma solution

la seule façon que je peux trouver pour mettre à jour les sources locales est de cliquer sur le bouton Sync Project with Gradle Files après la mise à jour du fichier aar/jar.

25
user4757345

J'avais le même problème, j'avais essayé toutes les formes d'inclure mon aar local dans mon projet, essayé toutes les méthodes de reconstruction, invalidation des caches, etc., mais je continuais à avoir le problème où les changements dans mon aar local n'étaient pas disponibles après la mise à jour du fichier dans le dossier libs.

La seule chose qui a fonctionné pour moi était la suivante:

  1. Commentez la ligne des fichiers d'implémentation ('../ libs/yourlib.aar') dans gradle
  2. Sync gradle
  3. Mettez à jour yourlib.aar dans le dossier libs
  4. Décommentez la ligne des fichiers d'implémentation ('../ libs/yourlib.aar') dans gradle
  5. Synchroniser à nouveau
  6. Projet de construction

Maintenant, les changements dans yourlib.aar devraient être disponibles dans votre projet. Si vous avez cette bibliothèque incluse dans plusieurs modules, je suppose que vous devrez le faire pour chaque module. Pas idéal, mais j'ai passé au moins 5 heures sur ce problème et ces étapes étaient la seule façon que je pouvais apparemment forcer les changements. Je suppose que la suppression de la bibliothèque du fichier Gradle, puis la synchronisation, la forceront à récupérer la nouvelle lorsqu'elle sera ajoutée à nouveau.

41
Shayla Sawchenko

J'ai eu le même problème et l'ai résolu très rapidement en procédant comme suit:

  • Recherchez dans votre dossier projet /.idea/libraries/ pour Gradle__artifacts_ [subproject] .xml
  • Supprimer ce fichier
  • Dans Android Studio, allez dans Fichier-> Projet de synchronisation avec les fichiers Gradle

Il s'agit d'un AAR inclus en tant que projet (c'est ainsi qu'il est inclus lorsque vous utilisez Fichier-> Nouveau-> Nouveau module ...-> Importer le package .JAR/.AAR).

13
Regular User

À l'heure actuelle, vous incluez l'AAR via une notation project. Puisqu'un AAR est littéralement juste un fichier, il devrait plutôt être inclus avec la notation files.

En supposant une structure de dossiers comme celle-ci:

screenshot of the folder directory of a new Android Studio 3 project

Vous pouvez inclure les fichiers avec l'une des lignes suivantes dans le bloc de dépendances de app/build.gradle:

  // include just my_library
  implementation files('libs/my_library.aar')

  // include just other_library
  implementation files("$rootDir/common/libs/other_library.aar")

  // include both libraries
  implementation files('libs/my_library.aar', "$rootDir/common/libs/other_library.aar")

Soit dit en passant, il existe une liste raisonnablement complète des types de dépendance pris en charge à https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.dsl.DependencyHandler.html .

5
Cliabhach

Après avoir remplacé le fichier .arr via l'Explorateur Windows. La seule chose qui a fonctionné pour moi est File -> Invalidate caches/Restrt

0
Evgeniy

En plus de commenter/décommenter et resynchroniser le projet Gradle et les paramètres, j'ai dû supprimer l'intégralité du répertoire build-cache.

Sur Mac: ~/.Android/build-cache/Windows: vous ne savez pas où se trouve cet emplacement de répertoire.

0
Alex Nguyen