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 entornoANDROID_HOME
- Prueba de instrumentación androide: IllegalAccessError
- Práctica para garantizar que los proyectos de Android se creen inmediatamente después de la compra de SVN en Eclipse
- Error en la compilación de Android Gradle: no se pudo encontrar com.google.android:support-v4:r18
- ¿Cómo puedo crear un apklib para un proyecto no maven
- ¿Cómo puedo usar los servicios de google play en un proyecto de maven?
Sin embargo, la variable de entorno ANDROID_HOME
se establece en android sdk path.
¿Podrías ayudarme?
- Android protobuf nano uso
- Gradle maven dependencia no se encuentra si el complemento es android-library
- ClassNotFoundException en la compilación de apk con maven
- Estructura de Directorio de Android Maven
- ¿Cómo puedo hacer mi proyecto de Android disponible desde el control remoto usando gradle como Picasso, Volley, etc?
- ¿Cómo puedo especificar qué versión de herramientas de compilación android en Maven
- Configuración del procesador de anotación explícita
- ¿Cuál es la mejor manera de averiguar la nueva versión está disponible para las bibliotecas externas utilizadas en el proyecto de Android Studio
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
- Cómo obtener el evento de clic del texto del marcador
- Error de Android SDK: Intentar instanciar una clase que no es un fragmento