java - support - failed to resolve multidex android
¿Soporte maven para proyectos android? (5)
Quiero comenzar un proyecto para Android, pero realmente me gusta construirlo usando Maven. ¿Google proporciona soporte para Maven o planea soportarlo? Sería genial si alguien supiera al menos un arquetipo para Maven que pueda usar mientras tanto. Gracias por adelantado.
Esto es lo que hice para agregar soporte técnico a un proyecto de Android existente en Eclipse. Instalé el plugin ''m2e'' a través del mercado de Eclipse. Luego instalé el plugin ''m2e-android''. En este momento se llama ''Configurador de Android para M2E'' en el mercado de Eclipse. Después de instalar los dos complementos y reiniciar Eclipse, haga clic derecho en un proyecto de Android existente -> Configurar -> Convertir a proyecto Maven. Elija una identificación de grupo única y una identificación de artefacto para su proyecto, luego haga clic en finalizar. Copie los siguientes contenidos en el pom.xml del proyecto y reemplace todos los contenidos existentes. Cambie el valor de la etiqueta ''versión'' en ''dependencias'' a la versión SDK que está usando. También cambie el valor de la etiqueta ''plataforma'' cerca del final del archivo al valor de su plataforma. No olvide cambiar también el ID de grupo, el ID de artefacto y el nombre del xml.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.myproject</groupId>
<artifactId>MyProject</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>MyProject</name>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<sourceDirectory>src</sourceDirectory>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.3.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<!-- platform or api level (api level 4 = platform 1.6)-->
<platform>10</platform>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
Después de eso, haga clic derecho en el proyecto -> Maven -> Actualizar proyecto. Si Eclipse se queja de errores en el xml, puede instalar Maven y luego ejecutar
mvn clean install
desde la consola en la carpeta que contiene el archivo pom.xml.
Lo que realmente quería era un artículo como este , pero lo encontré después de que se respondiera la pregunta.
Actualización: la gente de SpringSource realizó un proyecto de Spring Spring que admite el uso de Spring Framework en un entorno de Android y tiene soporte de Maven . Voy a darle una oportunidad.
Aquí hay un artículo sobre Spring Android y Maven usando Eclipse 3.6 y Android SDK 9, divididos en dos partes:
Parece que hay un plugin de maven para eso :-)
como dijo @Riduidel antes, puedes usar el complemento com.jayway.maven.plugins.android.generation2 .
Tenga en cuenta que no necesita descargar ningún complemento, debe tener solo el experto para usar este complemento.
Como lo hice
agregue manualmente pom.xml a su proyecto de Android (a la raíz del proyecto).
descargue apache-maven-3.1.1 y agregue su carpeta bin (por ejemplo, D: / java / apache-maven-3.1.1 / bin;) a la ruta en Variables de entorno.
configure settings.xml en [Your_maven_path] / conf con siguiente:
<pluginGroups> <pluginGroup>com.jayway.maven.plugins.android.generation2</pluginGroup> </pluginGroups>
Añadir contenido a pom.xml . Mi ejemplo
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example.ENumbers</groupId> <artifactId>ENumbers</artifactId> <version>1.0</version> <packaging>apk</packaging> <name>MainApp</name> <properties> <platform.version>2.2.1</platform.version> </properties> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.simpleframework</groupId> <artifactId>simple-xml</artifactId> <version>2.7.1</version> <scope>provided</scope> <exclusions> <exclusion> <artifactId>xpp3</artifactId> <groupId>xpp3</groupId> </exclusion> <exclusion> <artifactId>stax-api</artifactId> <groupId>stax</groupId> </exclusion> <exclusion> <artifactId>stax</artifactId> <groupId>stax</groupId> </exclusion> <exclusion> <artifactId>spring-web</artifactId> <groupId>org.springframework</groupId> </exclusion> <exclusion> <artifactId>commons-logging</artifactId> <groupId>commons-logging</groupId> </exclusion> </exclusions> </dependency> </dependencies> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.8.1</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> <path> D:/Program Files/Android/android-sdk </path> <platform>22</platform> </sdk> <undeployBeforeDeploy>true</undeployBeforeDeploy> </configuration> <extensions>true</extensions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project>
Mire los nodos importantes de <packaging>, <build>
, su contenido y la dependencia de com.google.android.
- Ahora puedes abrir la ventana de Maven en tu IDE. Para Intellij Idea lo hago a continuación:
Edite-> Herramientas de Windows-> Maven y agregue su pom.xm l para inicializar el directorio de Maven . - Eso es todo.
El complemento de Android Maven se ha actualizado para admitir los cambios realizados en la versión de Android SDK r14. Necesitará ajustar su POM para usar la nueva versión. Experimenté un error de memoria insuficiente con la nueva versión al compilar mi aplicación, así que tenga en cuenta la sección dex jvmArguments para permitir más memoria disponible.
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.0.0-alpha-13</version>
<configuration>
<sdk>
<platform>${android-platform}</platform>
</sdk>
<dex>
<jvmArguments>
<jvmArgument>-Xms256m</jvmArgument>
<jvmArgument>-Xmx512m</jvmArgument>
</jvmArguments>
</dex>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
La última versión del Configurador de Android (m2e-android) para Eclipse también es compatible con los cambios en r14. Por último, he publicado un blog de seguimiento en el sitio de SpringSource llamado Soporte actualizado de Maven para proyectos de Android , que analiza estas actualizaciones de las herramientas.