Error de compilación de Maven para android Proyecto "error: paquete R no existe"

Estoy tratando de configurar un proyecto MAVEN con la aplicación de Android. Tengo este archivo pom

<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.myproject</groupId> <artifactId>userprofile</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>userprofile</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>4.1.1.4</version> <scope>provided</scope> </dependency> </dependencies> </project> 

Y durante la compilación MAVEN consigo este error (cerca de 100 veces, es decir, tantas veces como se utiliza en mis métodos)

  [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- src\main\java\com\myproject\userprofile\BaseActivity.java:[52,43] error: package R does not exist Process finished with exit code 1 

¿Alguna idea sobre este error? En la web, o bien encontrar preguntas sin respuesta acerca de la salida de error similar. No tengo experiencia en MAVEN, así que creo que estoy perdiendo algo aquí.

La clase R es construida por su IDE durante la compilación. MAVEN no puede encontrar la clase R porque de forma predeterminada la clase se puede encontrar en la carpeta de compilación. Necesitas agregar algo como esto

 <sourceDirectory>build</sourceDirectory> <outputDirectory>target</outputDirectory> 

Diciéndole a MAVEN que tiene algunos archivos de recursos en la carpeta de compilación y desea que estén disponibles para compilarlos, así que agréguelos bajo la carpeta de destino que estará bajo su proyecto.

Así que ahora tengo

 build |----res |----src src |----main |----java |----res target 

Después de un rápido vistazo, creo que le falta el elemento de build . Maven está construyendo el proyecto con fuentes actuales, R y otras clases de gen aún no se han generado. Al menos necesitas algo como (después de dependencies etiqueta de 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.7.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 16 = platform 4.1)--> <platform>16</platform> </sdk> </configuration> </plugin> </plugins> </build> 

También el embalaje debe ser apk :

 <packaging>apk</packaging> 

Recomiendo encarecidamente que comience a leer la documentación de Android Maven junto con muestras .

Este error podría ocurrir si tuviera que modificar el nombre del paquete que genera por archétype: generate , para mí, utilizo android-quickstart para generar la estructura del módulo:

 mvn archetype:generate \ -DarchetypeArtifactId=android-quickstart \ -DarchetypeGroupId=de.akquinet.android.archetypes \ -DarchetypeVersion=1.0.11 \ -DgroupId=com.yy.android.gameLibs \ -DartifactId=sample 

Akquient me recomienda usar "com.yy.android.gameLibs" como nombre del paquete y acepté, compile este módulo con éxito y funcionó. Después de eso, cambio el nombre del paquete como "com.yy.android.sample" también cambia el atributo del paquete Androidmenifest.xml, por lo tanto el informe del módulo que el error, sigo de nuevo el comando generate y el nombre del paquete de elección yo mismo para resolver esto.

Modifique el empaquetado a apklib, como esto:

 <packaging>apklib</packaging> 

Y agrega meta de construcción al final de pom.xml como esto:

 <dependencies> <!--Android deps --> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>4.0.1.2</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.8.1</version> <configuration> <sdk> <platform>17</platform> </sdk> </configuration> <extensions>true</extensions> </plugin> </plugins> </build> 
  • ¿Cómo instalar manualmente App Engine en Android Studio?
  • ¿Cómo subir el módulo a JCenter usando el plugin de binario de gradle?
  • Android + eclipse + maven + acciónbarsherlock
  • No se puede resolver el símbolo: 'HttpClient', incluso después de agregar la dependencia
  • Configuración del procesador de anotación explícita
  • Cómo solucionar error de sincronización de Gradle falló (DefaultMavenFactory)?
  • Uso de debug.keystore especificado en las compilaciones de Maven Android
  • ProGuard: Advertencia: org.apache.commons.beanutils.BeanMap $ 2: no se puede encontrar superclase o interfaz org.apache.commons.collections.Transformer
  • No obtener fuentes procesadas (generadas) de anotación compiladas en apk, usando maven
  • No se puede agregar ViewPagerIndicator a la aplicación con Gradle
  • Pasa parámetro de perfil MAVEN de jenkins
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.