Vous souhaitez intégrer des fonctionnalités Android à votre Capacitor app? Ce guide explique comment utiliser les fichiers AAR (Android Archive) dans Plugins Capacitor pour combiner les fonctionnalités Android natives avec vos applications web cross-platform.
Points clés :
- Que sont les fichiers AAR ? Bibliothèques Android pré-packagées contenant code, des ressources et des fichiers natifs.
- Pourquoi les utiliser ? Les fichiers AAR permettent de réutiliser code, simplifient la maintenance et protègent vos fonctionnalités propriétaires.
- De quoi avez-vous besoin ? Des outils comme Android Studio, Gradle, et Node.js, ainsi qu'une configuration de projet adéquate.
- Comment les intégrer ? Placez les fichiers AAR dans
libs, configurez Gradle et connectez-les aux plugins Capacitor.
Étapes rapides :
- Configurez votre environnement : Installez les outils requis et configurez Android Studio.
- Organisez votre projet : Créez une structure claire pour votre Plugin Capacitor.
- Ajoutez les fichiers AAR : Placez-les dans
android/libset mettez à jour les dépendances Gradle. - Écrire le plugin code : Liez les fonctionnalités AAR au JavaScript avec API de Capacitor.
- Tester rigoureusement : Utilisez le debugger d'Android Studio pour garantir une intégration fluide.
En suivant ce guide, vous pourrez intégrer sans friction des fichiers AAR dans vos plugins Capacitor, débloquant ainsi les capacités natives Android pour vos web apps.
Comment intégrer une bibliothèque Android (fichier AAR) dans un capacitor plugin

Configuration requise pour le développement
Avant de manipuler des fichiers AAR, assurez-vous que votre environnement de développement est correctement configuré pour éviter tout imprévu.
Logiciels requis
Voici les logiciels nécessaires pour travailler avec des fichiers AAR dans les plugins Capacitor :
| Logiciel | Version minimale | Finalité |
|---|---|---|
| Android Studio | 2022.1.1 ou supérieur | L'IDE principal pour le développement Android |
| Java Development Kit | 11 ou supérieur | Requis pour le développement Android |
| Node.js | 14.0 ou supérieur | Pour gérer les packages Capacitor et npm |
| Gradle | 7.3 ou supérieur | L'outil de build d'Android |
| Git | 2.30 ou supérieur | Pour le contrôle de version et la gestion de packages |
De plus, assurez-vous que les composants suivants sont inclus dans votre SDK Manager :
- Android SDK Plateforme 33 (Android 13.0)
- Android SDK Build-Tools 33.0.0
- Outils en ligne de commande Android SDK
- Émulateur Android
- Android SDK Platform-Tools
Étapes de configuration du projet
1. Initialisez votre environnement de développement
Commencez par créer un nouveau répertoire avec cette structure :
my-plugin/
├── android/
│ ├── src/
│ └── build.gradle
├── src/
│ └── definitions.ts
└── package.json
2. Configurer les paramètres d'Android Studio
Lancez Android Studio et ajustez les paramètres suivants :
- Réglez le JDK Gradle sur la version 11 ou supérieure.
- Activez le téléchargement automatique pour les composants Android SDK.
- Mettez à jour vos variables d'environnement avec le bon chemin Android SDK.
3. Préparez la structure de votre plugin
Mettez à jour le android/build.gradle fichier avec ces paramètres pour inclure le support des fichiers AAR :
android {
compileSdkVersion 33
defaultConfig {
minSdkVersion 22
targetSdkVersion 33
}
repositories {
flatDir {
dirs 'libs'
}
}
}
4. Configurer le contrôle de version
Initialisez Git dans le répertoire de votre projet et créez un .gitignore fichier pour exclure les fichiers inutiles. Voici un exemple de .gitignore:
android/build/
node_modules/
dist/
*.iml
.idea/
.gradle/
local.properties
Une fois ces étapes terminées, vous pourrez passer à l'ajout de vos fichiers AAR.
Ajouter des fichiers AAR à votre plugin
Obtenir des fichiers AAR
Les fichiers AAR peuvent provenir de SDK tiers, de bibliothèques personnalisées ou de dépendances Maven. Il est conseillé de documenter leur source, leur version et leur utilité dans un README fichier situé dans le répertoire libs .
| Type de source | Description | Bonne pratique |
|---|---|---|
| Third-party SDKs | Bibliothèques pré-compilées de fournisseurs | Documenter les versions des fournisseurs dans un README |
| Bibliothèques Android personnalisées | Modules Android développés en interne | Documenter le processus de build |
| Dépendances Maven | Converties depuis des dépôts distants | Mise en cache locale pour les builds hors ligne |
Une fois vos fichiers AAR prêts et documentés, vous pouvez configurer votre plugin pour les inclure.
Configuration des fichiers du plugin
Organisez les fichiers de votre plugin pour garantir une intégration fluide des dépendances AAR. Voici un exemple de la structure de votre plugin :
my-plugin/
├── android/
│ ├── libs/ # AAR files with README
│ ├── src/
│ └── build.gradle
├── src/
│ └── definitions.ts
└── package.json
{
"files": [
"android/libs/*.aar",
"android/src/**/*",
"src/**/*"
]
}
Emplacement des fichiers AAR
Pour activer la fonctionnalité AAR, placez les fichiers dans le dossier android/libs de votre plugin en suivant ces étapes :
- Utilisez un format de nommage clair et cohérent, tel que
libraryname-version.aar. - Gérez les versions dans un fichier
versions.propertiesPar exemple :
library1=1.2.3
library2=2.0.0
- Ajoutez une
dependencies.gradlefichier pour les autres dépendances :
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar'])
implementation 'com.example:dependency:1.0.0'
}
- Organisez les fichiers spécifiques aux fournisseurs dans des sous-répertoires pour une meilleure gestion :
android/libs/
├── vendor1/
│ ├── feature.aar
│ └── config.json
└── vendor2/
├── module.aar
└── settings.xml
Conserver les fichiers de configuration dans des sous-répertoires spécifiques permet de maintenir l'organisation et d'éviter les conflits de build lors de l'utilisation de plusieurs dépendances AAR.
Gradle Étapes de configuration

Mise à jour de build.gradle
Pour intégrer des fichiers AAR dans votre plugin Capacitor, vous devez configurer Gradle correctement. Commencez par ajouter ces paramètres de dépôt dans android/build.gradle:
repositories {
google()
mavenCentral()
flatDir {
dirs 'libs'
}
}
Ensuite, incluez les dépendances AAR dans le bloc dependencies :
dependencies {
implementation files('libs/your-library.aar')
implementation fileTree(dir: 'libs', include: ['**/*.aar'])
implementation "com.getcapacitor:core:${capacitorVersion}"
implementation "androidx.appcompat:appcompat:1.6.1"
}
Pour une meilleure gestion des versions, créez un fichier gradle.properties à la racine de votre projet et définissez vos versions de librairies :
# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0
Si le fichier AAR inclut des dépendances supplémentaires, déclarez-les dans android/build.gradle comme ceci :
android {
defaultConfig {
minSdkVersion 21
targetSdkVersion 33
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
}
}
Une fois ces modifications effectuées, synchronisez votre projet pour les appliquer.
Exécution de la synchronisation Gradle
Ouvrez votre projet dans Android Studio et attendez que Gradle se synchronise automatiquement. Si cela ne démarre pas, cliquez sur le bouton « Sync Project with Gradle Files » dans la barre d'outils.
After syncing, verify the following:
| Point de contrôle | Résultat attendu | Problèmes courants |
|---|---|---|
| Sortie du build | Aucune erreur liée aux fichiers AAR | Dépendances manquantes |
| Résolution de la bibliothèque | Fichiers AAR correctement liés | Références de chemin incorrectes |
| Conflits de version | Aucun problème de version de dépendance | Versions incompatibles |
Si la synchronisation échoue, vérifiez votre configuration. Assurez-vous, par exemple, que ces paramètres sont appliqués :
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lintOptions {
abortOnError false
}
}
Pour les fichiers AAR volumineux, vous devrez peut-être augmenter l'allocation mémoire de Gradle dans gradle.properties:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
Une fois la synchronisation réussie, vos fichiers AAR devraient être pleinement intégrés et prêts pour les tests.
Connecter les fonctionnalités AAR à Capacitor
Écriture de la classe du plugin
Une fois vos fichiers Gradle synchronisés, il est temps de connecter vos fonctionnalités AAR en étendant la Plugin class. Cette étape lie le JavaScript au code natif d'Android.
@NativePlugin(
permissions = {
Manifest.permission.REQUIRED_PERMISSION
}
)
public class YourPlugin extends Plugin {
private YourAARLibrary libraryInstance;
@Override
public void load() {
super.load();
libraryInstance = new YourAARLibrary(getContext());
}
}
Voici ce dont vous avez besoin pour initialiser la bibliothèque AAR :
| Composant | Finalité | Note d'implémentation |
|---|---|---|
| Contexte | Contexte de l'application Android | Utilisez getContext() depuis la classe Plugin |
| Configuration | Paramètres de la bibliothèque | Passer les options depuis le plugin |
| Cycle de vie | Gestion de l'état du plugin | Remplacer load() et handleOnDestroy() |
Création de méthodes de plugin
Ensuite, définissez les méthodes de votre plugin en utilisant le @PluginMethod Ces méthodes gèrent l'échange de données entre JavaScript et Java.
@PluginMethod
public void performAction(PluginCall call) {
try {
// Get data from JavaScript
String inputData = call.getString("inputKey");
// Call AAR library method
YourLibraryResult result = libraryInstance.processData(inputData);
// Return result to JavaScript
JSObject ret = new JSObject();
ret.put("value", result.getValue());
call.resolve(ret);
} catch (Exception e) {
call.reject("Error processing data", e);
}
}
Pour les tâches nécessitant une exécution asynchrone :
@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)
public void startContinuousOperation(PluginCall call) {
call.setKeepAlive(true);
libraryInstance.setCallback(new LibraryCallback() {
@Override
public void onUpdate(String data) {
JSObject ret = new JSObject();
ret.put("data", data);
call.resolve(ret);
}
});
}
Voici comment les types courants sont convertis entre JavaScript et Java :
| Type JavaScript | Type Java | Méthode de conversion |
|---|---|---|
| Object | JSObject | call.getObject() |
| Array | JSArray | call.getArray() |
| String | String | call.getString() |
| Number | Entier/Double | call.getInt()/call.getDouble() |
| Boolean | Boolean | call.getBoolean() |
Pour nettoyer les ressources, surchargez la méthode handleOnDestroy :
@Override
protected void handleOnDestroy() {
if (libraryInstance != null) {
libraryInstance.cleanup();
libraryInstance = null;
}
super.handleOnDestroy();
}
Grâce à ces méthodes, votre bridge natif est prêt. Testez votre implémentation dans l'environnement de debug d'Android Studio pour vérifier que tout fonctionne comme prévu.
Tests et résolution de problèmes
Débogage dans Android Studio

Pour déboguer votre intégration AAR dans Android Studio, commencez par activer le mode debug dans le build.gradle fichier :
android {
buildTypes {
debug {
debuggable true
minifyEnabled false
}
}
}
Ajoutez des points d'arrêt dans les méthodes de votre plugin pour suivre le flux de données et identifier d'éventuels problèmes :
@PluginMethod
public void yourMethod(PluginCall call) {
// Set a breakpoint here to inspect input data
String inputValue = call.getString("key");
// Another breakpoint here to check method calls to the AAR
libraryInstance.someMethod(inputValue);
}
Utilisez le panneau Debug d'Android Studio pour surveiller les points clés :
| Zone de débogage | Quoi vérifier | Problèmes courants |
|---|---|---|
| Logcat | Messages d'initialisation AAR | Permissions manquantes ou contexte incorrect |
| Variables | Conversions de types de données | Valeurs nulles ou incompatibilité de types |
| Stack Trace | Flux d'exécution des méthodes | Appels de méthodes invalides ou problèmes de threading |
| Mémoire | Utilisation des ressources | Fuites de mémoire |
Si le débogage ne résout pas le problème, suivez les étapes de dépannage de la section suivante.
Étapes de dépannage
Quand le débogage seul ne suffit pas, suivez ces étapes pour résoudre les problèmes courants :
1. Conflits de dépendances
Vérifiez les conflits de version dans votre build.gradle fichier. Vous pouvez forcer des versions spécifiques pour résoudre les conflits :
configurations.all {
resolutionStrategy {
force 'com.google.android:android:4.1.1.4'
// Add other forced versions as needed
}
}
2. Bibliothèques natives manquantes
Assurez-vous que l'AAR inclut les .so fichiers requis dans les répertoires appropriés, tels que :
jniLibs/armeabi-v7a/jniLibs/arm64-v8a/jniLibs/x86/jniLibs/x86_64/
3. Problèmes de fusion de manifest
Si vous rencontrez des conflits de manifest, incluez ceci dans votre AndroidManifest.xml fichier pour remplacer les bibliothèques problématiques :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="your.plugin.package">
<uses-sdk tools:overrideLibrary="conflicting.library.package"/>
</manifest>
4. Crashs au runtime et gestion de la mémoire
Utilisez l'onglet Performance d'Android Studio pour surveiller la stabilité au runtime. Pour les problèmes d'initialisation, gérez les exceptions avec soin :
try {
libraryInstance = new YourAARLibrary(getContext());
} catch (Exception e) {
Log.e("PluginError", "Failed to initialize library: " + e.getMessage());
return;
}
Pour éviter les fuites de mémoire, assurez-vous que les ressources sont correctement libérées. Utilisez le Memory Profiler d'Android Studio pour suivre l'utilisation du heap et identifier les fuites.
Résumé
Pour intégrer des fichiers AAR dans les plugins Capacitor, vous devrez configurer l'environnement Android, placer les fichiers AAR au bon endroit, configurer Gradle avec précision et tester minutieusement.
Phases clés de l'implémentation
| Phase | Prérequis | Indicateurs de succès |
|---|---|---|
| Configuration de développement | Android Studio 4.0+, Gradle 7.0+ | Le build se termine sans erreur |
| Intégration AAR | Placement correct des fichiers, dépendances correctes | Aucun conflit de manifeste |
| Développement de plugins | Structure de plugin claire, mapping des méthodes précis | Les méthodes s'exécutent comme prévu |
| Tests | Mode debug actif, gestion d'erreurs efficace | Aucun crash au runtime |
Une fois ces bases maîtrisées, vous pourrez explorer des techniques plus avancées.
Étapes suivantes
Pour améliorer votre plugin, concentrez-vous sur ces points :
-
Optimisation des performances
Utilisez le profiler d'Android Studio pour surveiller l'usage mémoire et garantir un nettoyage correct des ressources. -
Préparation de la distribution
Documentez toutes les configurations AAR, générez la documentation API et testez la compatibilité avec les niveaux API Android 29–34. -
Stratégie de maintenance
Automatisez vos tests, gérez les versions d'AAR avec le version control, maintenez un changelog et configurez le reporting d'erreurs pour résoudre les problèmes en production.
Si vous prévoyez de rendre votre plugin public, pensez à fournir une documentation détaillée sur les configurations AAR spécifiques et les limites de la plateforme. Les autres développeurs pourront ainsi adopter et utiliser votre plugin plus facilement.
Continuer avec Comment utiliser les fichiers AAR dans les plugins Capacitor
Si vous utilisez Comment utiliser les fichiers AAR dans les plugins Capacitor pour planifier le travail sur un plugin natif, connectez-l’à Répertoire des plugins Capgo pour le workflow produit dans le répertoire des plugins Capgo, Plugins Capacitor par Capgo pour les détails d'implémentation dans les plugins Capacitor par Capgo, Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Adding or Updating Plugins, Alternatives aux plugins Ionic Enterprise pour le workflow produit dans les alternatives aux plugins Ionic Enterprise, et Capgo Native Build pour le workflow produit dans les Capgo Native Builds.