Le plugin android maven n'obtient pas la variable env ANDROID_HOME dans Eclipse

Je travaille sur un projet d'application Android et c'est un projet Maven. Lorsque j'essaie de fonctionner comme "installation maven", c'est ce que je reçois:

"Impossible d'exécuter le but com.jayway.maven.plugins.android.generation2: android-maven-plugin: 3.1.1: generate-sources (default-generate-sources) sur project android-client: aucun chemin d'accès Android SDK n'a été trouvé Vous pouvez le configurer dans la section de configuration du plugin dans le fichier pom en utilisant … ou … ou en ligne de commande à l'aide de -Dandroid.sdk.path = … ou en définissant la variable d'environnement ANDROID_HOME -> [Aide 1] "

  • Différence entre OnTouch et OnClick Android
  • Que doit savoir un développeur avant de créer des applications de téléphones cellulaires?
  • Pourquoi AsyncTask s'exécute-t-il dans le fil principal d'une application?
  • FragmentManager incompatible avec FragmentStatePagerAdapter super constructeur
  • Comment puis-je partager plusieurs fichiers via une intention?
  • Edittext Android avec liste déroulante
  • Si je tape sur mon chemin android_home dans pom.xml, cela fonctionne bien, mais nous utilisons git et tout le monde peut avoir des chemins différents pour android_home.why android-maven-plugin obtient-il une variable env dans eclipse?

    La variable android_home env est dans mon PATH. J'ai écrit $ {env.ANDROID_HOME} dans mon pom.xml mais ça ne fonctionnait toujours pas.

    Étrangement, si j'utilise le terminal (installation mvn) pour fonctionner comme installation maven, ça marche!

    En fait, c'est un problème assez facultatif pour moi, mais je souhaite toujours savoir pourquoi ce plugin ne fonctionne pas dans Eclipse.

  • Comment obtenir tous les fichiers à partir du dossier des ressources
  • AndroidDebugKey Keystore a été falsifié ou le mot de passe était incorrect
  • Android Bitmap: Convertir des pixels transparents en une couleur
  • Autorisation d'écrire sur la carte SD
  • Tracer le cercle sur le toucher
  • Comment un message d'erreur peut-il être défini pour le Spinner dans Android?
  • 9 Solutions collect form web for “Le plugin android maven n'obtient pas la variable env ANDROID_HOME dans Eclipse”

    Vous devez créer une variable système pour ANDROID_HOME, ne pas la configurer dans votre PATH.

    Assurez-vous que votre installation de SDK d'Android contient les bibliothèques pour la même version d'API que vous avez configurée sur votre pom.xml .

    Par exemple, si votre configuration XML ressemble à:

    <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> ... <configuration> <sdk> <path>${env.ANDROID_HOME}</path> <platform>8</platform> </sdk> ... </configuration> </plugin> 

    Alors vous devriez vérifier avec Android SDK Manager (ou vérifier directement sur votre système de fichiers: $ ANDROID_HOME / plates-formes) que vous avez SDK API 8 installé. Bien sûr, vous pouvez également modifier votre pom.xml pour faire correspondre la bibliothèque installée.

    Si vous utilisez Linux, l'exportation de ANDROID_HOME dans .bashrc peut ne pas fonctionner.

     export ANDROID_HOME=/home/toro/etc/android-sdk-linux 

    Pour moi, cela fonctionne uniquement lorsque j'exporte ANDROID_HOME dans le fichier /etc/environment cette manière:

     ANDROID_HOME=/home/toro/etc/android-sdk-linux 

    Vous devez redémarrer l'ordinateur pour qu'il fonctionne.

    Il vous suffit de vous déconnecter et de vous connecter à nouveau pour que la variable d'environnement soit appliquée dans l'ensemble du système. En option, vous pouvez simplement le localiser localement pour le tester avant de le faire: $source /etc/environment

    Définir une variable ANDROID_HOME dans votre .bashrc ou tout ce qui fonctionnera, mais n'oubliez pas d' exporter cette variable afin qu'elle soit disponible pour les sous-processus. Le réglage d'ANDROID_HOME avec les autres méthodes proposées ici vous permettra d'obtenir des erreurs initiales, mais sans ANDROID_HOME, votre build ne sera probablement pas échoué à un moment donné.

    Sur votre ligne de commande, exécutez:

    mvn clean install -- Dandroid.sdk.path="/Applications/Android Studio.app/sdk/"

    Aucune des autres méthodes n'a vraiment fonctionné. (Le réglage ANDROID_HOME ne fait rien)

    Une autre façon est de configurer la variable d'environnement dans la configuration d'exécution pour pom.xml.

    Accédez au menu Exécuter les configurations, sélectionnez la configuration d'exécution utilisée pour votre projet pom.xml et sélectionnez l'onglet Environnement et sélectionnez "Nouveau", puis insérez:

    • ANDROID_HOME en nom Champ
    • Chemin vers votre sdk dans le champ de valeur

    Cela fonctionne et, de cette façon, la variable est définie uniquement lorsque vous lancez la configuration maven pour le projecteur sélectionné, et vous pouvez également définir un chemin différent pour différents projets, et vous n'avez pas besoin de modifier votre .bashrc. Il fonctionne également dans Windows.

    De la documentation

    Vous pouvez le configurer dans la section de configuration de l' android-maven-plugin dans le fichier pom.xml en utilisant <sdk><path>...</path></sdk> ou <properties><android.sdk.path>...</android.sdk.path></properties> ou en ligne de commande en utilisant -Dandroid.sdk.path=... ou en définissant la variable d'environnement ANDROID_HOME .

    Solution 1

    J'ai défini une variable de système Android SDK appelée ANDROID_SDK (au lieu d' ANDROID_HOME ) et l' ANDROID_HOME référencée dans mon pom.xml cette façon:

      <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> <packaging>apk</packaging> <name>...</name> <description>...</description> <properties> <android.sdk.path>${env.ANDROID_SDK}</android.sdk.path> ... </properties> 

    Solution 2

    En alternative, vous pouvez également le configurer dans la section android-maven-plugin :

     <plugin> <extensions>true</extensions> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>${android-maven-plugin.version}</version> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <android.sdk.path>${env.ANDROID_SDK}</android.sdk.path> <platform>16</platform> </sdk> <undeployBeforeDeploy>true</undeployBeforeDeploy> </configuration> </plugin> 

    Solution 3

    En troisième option, vous pouvez définir le SDK à partir de la ligne de commande passant un argument à Maven:

    mvn clean install -Dandroid.sdk.path="C:\\Program Files (x86)\\Android\\android-sdk"

    Vous devez définir le chemin de développement SDK de développement Android dans Eclipse: cliquez sur Fenêtre -> Préférences et sélectionnez Android. L'emplacement SDK peut être défini sous les préférences d'Android.

    Créez un fichier appelé local.properties dans votre répertoire racine de votre projet.

    Avec le contenu;

     sdk.dir=c:\\path\\to\\android-sdk 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.