Je suis conscient de cette question: Ajout de fichiers .aar locaux à ma génération mais la solution ne fonctionne pas pour moi.
J'ai essayé d'ajouter cette instruction au niveau supérieur de mon fichier build.gradle
:
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
J'ai également mis le fichier slidingmenu.aar
dans /libs
et l'ai référencé dans la section dependencies
: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
, mais cela n'a pas fonctionné du tout.
J'ai aussi essayé compile files('libs/slidingmenu.aar')
mais sans succès.
Qu'est-ce que je rate? Des idées?
P.S. Android Studio 0.8.2
En me basant sur la réponse de Josiah, voici comment je l’ai obtenue.
En suivant ses instructions (sous édition) (Fichier -> Nouveau-> Nouveau module -> Importer .JAR/.AAR) et importez votre fichier .AAR.
Ensuite, dans votre projet build.gradle (et non celui de niveau supérieur, celui sous "app"), ajoutez ce qui suit (dans la section des dépendances):
dependencies {
compile project(':Name-Of-Your-Project')
}
Remarque Le nom de votre projet doit correspondre au nom du dossier ajouté après l'importation du fichier AAR (au même niveau que app/.idea
sous le dossier le plus élevé). Ou pour le dire autrement ...
MonApplication .Idea App Build.gradle (voici où ajouter un projet de compilation (': NomProjet') à la section de dépendance) NomProjet (ajouté automatiquement après l'importation, en faisant correspondre le nom de votre fichier aar) construire noter etc.
Cela a fonctionné pour moi sous Android Studio 0.8.0. N'oubliez pas de synchroniser gradle (à l'aide du bouton de la barre d'outils ou dans Fichier-> Synchroniser) après l'avoir fait.
(Merci à Josiah de m'avoir mis dans la bonne direction)
(Remarque: avant cela, j'avais essayé de l'ajouter au dossier libs, en essayant de manipuler le niveau supérieur build.gradle
et le niveau d'application build.gradle
, mais rien de tout cela ne fonctionnait pour mes fichiers aars - jar fonctionnera bien, mais pas les fichiers aar)
Mise à jour : Comme @ amram99 l'a mentionné, le problème a été corrigé à compter de la sortie de Android Studio v1. 3.
Testé et vérifié avec les spécifications ci-dessous
Qu'est-ce qui fonctionne maintenant
Vous pouvez maintenant importer un fichier aar local via le fichier )> Nouveau> Nouveau module> Importer le package .JAR/.AAR option dans Android Studio v1.3
Cependant, la réponse ci-dessous reste vraie et efficace quels que soient les changements Android Studio, ceux-ci étant basés sur un script de gradation.
Ancienne réponse: Dans une récente mise à jour, les utilisateurs de Android ont interrompu l'inclusion de fichiers AAR locaux via l'ajout d'un nouveau Android Studio option de menu du module. Vérifiez le Issue répertorié ici. Indépendamment de tout ce qui entre et sort de la liste des fonctionnalités de l'IDE, la méthode ci-dessous fonctionne lorsqu'il s'agit de travailler avec des fichiers aar locaux (testé aujourd'hui):
Placez le fichier aar dans le répertoire libs (créez-le si nécessaire), puis ajoutez le code suivant dans votre build.gradle:
dependencies {
compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
}
repositories{
flatDir{
dirs 'libs'
}
}
Edit: La manière correcte (actuellement) d'utiliser un fichier AAR local en tant que dépendance de construction consiste à utiliser l'assistant d'importation du module (Fichier | Nouveau module | Importer le package .JAR ou .AAR) qui sera automatiquement ajouté le .aar en tant que module de bibliothèque dans votre projet.
Ancienne réponse
Essaye ça:
allprojects {
repositories {
jcenter()
flatDir {
dirs 'libs'
}
}
}
...
compile(name:'slidingmenu', ext:'aar')
Je travaille sur Android Studio 2.1. J'ai un module appelé "Native_Ads" qui est partagé entre plusieurs projets.
Tout d'abord, j'ai créé un répertoire dans mon module Native_ads avec le nom 'aars', puis j'y ai placé le fichier aar.
Structure du répertoire:
libs/
aars/ <-- newly created
src/
build.gradle
etc
Fichier Gradle niveau supérieur:
allprojects {
repositories {
jcenter()
// For module with aar file in it
flatDir {
dirs project(':Native_Ads').file('aars')
}
}
}
Fichier build.gradle du module d'application: - aucune modification
Fichier Settings.gradle (pour inclure le module):
include ':app'
include 'Native_Ads'
project(':Native_Ads').projectDir = new File(rootProject.projectDir, '../path/to/Native_Ads')
Fichier Gradle pour le module Native_Ads:
repositories {
jcenter()
flatDir {
dirs 'aars'
}
}
dependencies {
compile(name:'aar_file_name_without_aar_extension', ext:'aar')
}
C'est ça. Nettoyer et construire.
Vous pouvez le faire de cette façon. Il doit être au format maven:
repositories {
maven { url uri('folderName')}
}
Et puis votre AAR doit aller dans une structure de dossiers pour un identifiant de groupe "com.example":
folderName/
com/
example/
verion/
myaar-version.aar
Puis référence comme dépendance:
compile 'com.example:myaar:version@aar'
Où version
est la version de votre fichier aar (c.-à-d. 3.0, etc.)
Voici ma structure et comment je résous ceci:
MyProject/app/libs/mylib-1.0.0.aar
MyProject/app/myModulesFolder/myLibXYZ
Sur build.gradle
à partir de Project/app/myModulesFolder/myLibXYZ
J'ai mis ceci:
repositories {
flatDir {
dirs 'libs', '../../libs'
}
}
compile (name: 'mylib-1.0.0', ext: 'aar')
Fait et fonctionne bien, mon sous-module XYZ dépend de la bibliothèque du module principal.
Dans mon cas, aucune des réponses ci-dessus n'a fonctionné! depuis que j'ai eu différents productFlavors en ajoutant simplement repositories{ flatDir{ dirs 'libs' } }
n'a pas fonctionné! J'ai fini par spécifier l'emplacement exact du répertoire libs:
repositories{
flatDir{
dirs 'src/main/libs'
}
}
Supposons qu’il faille introduire flatDir comme ceci quand il existe différents productFlavors dans build.gradle
Pour ceux qui ont ce problème à partir de Android Studio 1.4, je dois le faire fonctionner en créant un module dans le projet qui contient 2 éléments.
build.gradle avec le contenu suivant:
configurations.create("default")
artifacts.add("default", file('facebook-Android-sdk-4.7.0.aar'))
le fichier aar (dans cet exemple 'facebook-Android-sdk-4.7.0.aar')
Ensuite, incluez la nouvelle bibliothèque en tant que dépendance de module. Vous pouvez maintenant utiliser un fichier construit sans inclure les sources dans le projet.
Crédit à Facebook pour ce hack. J'ai trouvé la solution en intégrant le Android SDK dans un projet.
Dans mon cas, je viens de mettre le fichier aar dans les bibliothèques, et ajoute
dependencies { ... api fileTree(dir: 'libs', include: ['*.aar']) ... }
dans build.gradle et ça marche. Je pense que c'est similaire avec la dépendance générée par défaut:
implementation fileTree(dir: 'libs', include: ['*.jar'])
Ajouter ci-dessous dans le projet d'implémentation du fichier d'application (chemin d'accès: ': nom du projet')
Cette ligne inclut tous les fichiers aar
et jar
du dossier libs
:
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/')