Maven + RoboGuice + ActionBarSherlock + RoboGuice-Sherlock

Estoy tratando de crear un proyecto de base de Android utilizando el arquetipo android-quickstart, y la adición de RoboGuice, dependencias de ActionBarSherlock, además de RoboGuice-Sherlock para combinar los dos.

Este es mi pom.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>com.myapp</groupId> <artifactId>BaseApp</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>apk</packaging> <name>BaseApp</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <platform.version> 4.1.1.4 </platform.version> <android.plugin.version>3.6.0</android.plugin.version> </properties> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.roboguice</groupId> <artifactId>roboguice</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>1.3.9</version> </dependency> <dependency> <groupId>com.actionbarsherlock</groupId> <artifactId>actionbarsherlock</artifactId> <version>4.4.0</version> <type>apklib</type> </dependency> <dependency> <groupId>com.github.rtyley</groupId> <artifactId>roboguice-sherlock</artifactId> <version>1.5</version> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>${android.plugin.version}</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>16</platform> </sdk> </configuration> </plugin> </plugins> </build> </project> 

Pero m2eclipse no funcionará con este Pom.xml, ya que es incapaz de encontrar la dependencia apklib. Speficically Estoy recibiendo el siguiente mensaje en la pestaña "Problemas" en Eclipse:

 dependency=[com.actionbarsherlock:actionbarsherlock:apklib:4.4.0:compile] not found in workspace pom.xml /BaseApp line 1 me.gladwell.eclipse.m2e.android.markers.dependency.apklib 

He intentado quitar la línea <type>apklib</type> , pero mis recursos de ABS (es decir, los temas requeridos) no se importan al proyecto.

He leído en varias preguntas que el tipo de apklib sólo funciona en línea de comandos, y que si quiero mantener el IDE necesito importar ABS manualmente como una biblioteca. Lo hice, pero RoboGuice se bloquea porque el proyecto se convierte en un proyecto de biblioteca y, aparentemente, los ID de recursos no son definitivos en proyectos de biblioteca. (El error de tiempo de compilación que obtengo es "El valor del atributo de anotación InjectView.value debe ser una expresión constante"). Para referencia, ésta es mi única actividad:

 public class HelloAndroidActivity extends RoboSherlockActivity { @InjectView(R.id.helloworld) TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView.setText("Roboguice says Hello World"); } } 

¿Hay alguna forma adecuada de crear un proyecto base con estos tres elementos usando maven y Eclipse?

Resulta que accidentalmente hice clic en la casilla "Is Library" en Propiedades del proyecto. Ahora funciona con ABS importado manualmente como una biblioteca.

Es una lástima que no sea capaz de usar Maven directamente 🙁

  • Roboguice 2.0 inyecta la aplicación en POJO
  • ¿Cómo se inyecta impl de alguna interfaz en una actividad de Android utilizando Guice
  • InjectView en RoboFragment
  • Roboblender-3.0.1.jar: no incluido en Android: javax.tools. Referido desde com.google.inject.blender.AnnotationDatabaseGenerator
  • Android - Configuración de Roboguice 2.0?
  • Aplicación para Android con RoboGuice 2.0 - Cómo inyectar un singleton con el contexto de la aplicación
  • Roboguice inyección en el adaptador
  • Liberando el ayudante de ORMLite en @Singleton
  • Interceptor de actividad
  • Android: Cómo ampliar mi clase de actividad con RoboActivity + ActionBarActivity
  • RoboGuice 3.0 NoClassDefFoundError: roboguice.inject.ContextScopedRoboInjector
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.