Maven android plugin: No se puede encontrar una ruta de acceso a Android SDK

Yo uso el maven-android-plugin versión 3.3.2. Cuando intento construir mi proyecto androide tengo la siguiente excepción:

org.apache.maven.plugin.MojoExecutionException : No se pudo encontrar ninguna ruta de acceso de Android SDK. Puede configurarlo en la sección de configuración del complemento en el archivo pom usando <sdk><path>...</path></sdk> o <properties><android.sdk.path>...</android.sdk.path></properties> o en la línea de comandos utilizando -Dandroid.sdk.path=... o estableciendo la variable de entorno ANDROID_HOME

Sin embargo, la variable de entorno ANDROID_HOME se establece en android sdk path.

¿Podrías ayudarme?

Suena como, mientras que el env var está disponible en el shell que se ejecuta, no está disponible en el shell Maven se ejecuta.

Independientemente, en lugar de trabajar alrededor de él, lo mejor es crear un archivo de configuración con el conjunto de propiedades. Un mínimo se vería así (escribiendo en la parte superior de mi cabeza, ya que no tengo mi archivo de configuración disponible ahora):

 <settings> <profiles> <profile> <id>android-settings</id> <properties> <android.sdk.path>/path/to/android/sdk</android.sdk.path> </properties> </profile> </profiles> <activeProfiles> <activeProfile>android-settings</activeProfile> </activeProfiles> </settings> 

Tírelo en su carpeta .m2 o .m2 a través de Eclipse en Window -> Preferences... -> Maven -> User Settings .

De la documentación

Puede configurarlo en la sección de configuración de android-maven-plugin en el archivo pom.xml usando <sdk><path>...</path></sdk> o <properties><android.sdk.path>...</android.sdk.path></properties> o en la línea de comandos utilizando -Dandroid.sdk.path=... o estableciendo la variable de entorno ANDROID_HOME .

Solución 1

He definido una variable del sistema SDK de Android llamada ANDROID_SDK (en lugar de ANDROID_HOME ) y la ANDROID_HOME referenciado en mi pom.xml esta manera:

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

Solución 2

Como alternativa, también puedes configurarlo en la sección de 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> 

Solución 3

Como tercera opción, puede configurar el SDK desde la línea de comandos pasando un argumento a Maven:

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

Sí, he resuelto este problema. Al agregar el archivo settings.xml en la carpeta ~ / .m2

 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <profiles> <profile> <id>android</id> <properties> <android.sdk.path> ANDROID SDK PATH </android.sdk.path> </properties> </profile> </profiles> <activeProfiles> <!--make the profile active all the time --> <activeProfile>android</activeProfile> </activeProfiles> </settings> 

Y abra su aplicación android-bootstrap-master y abra el archivo pom.xml y compruebe la línea siguiente

 <sdk> <platform>16</platform> </sdk> 

16 es el nivel actualmente instalado o no sdk

  • ¿Debo usar Maven para una aplicación para Android?
  • ¿Qué significa "proyecto maven-android no reconocido"?
  • Bibliotecas nativas que no están conectadas al APK usando android-maven-plugin
  • Android Maven Eclipse todavía no puede importar apklib
  • Error con Maven Android: El POM para com.google.android.gms: google-play-services: jar: 13.0.0 falta, no hay información de dependencia disponible
  • ¿Puede un AAR incluir dependencias transitivas?
  • Android: Nombre del archivo final de Maven
  • No se encontraron artefactos que coincidan con el patrón de archivo "** / target / *. Apk"
  • Dependencia de la biblioteca de Android Gradle con la dependencia de la biblioteca mediante Nexus
  • No obtener fuentes procesadas (generadas) de anotación compiladas en apk, usando maven
  • Excepción en el subproceso "pool-1-thread-1" java.lang.NoClassDefFoundError: org / eclipse / aether / spi / connector / Transfer $ Estado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.