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:
- Robolectric + PowerMock + Mockito no funciona
- Uso de RoboFragment con FragmentManager
- ¿Tiene sentido usar Guice para Android
- ¿Dónde se escribe la salida de registro cuando se utiliza Roboelectric + Roboguice?
- Gradle y varios proyectos con Roboguice dependencia
<?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?
- No se puede inyectar vista a clases personalizadas con RoboGuice
- Los objetos inyectados se convirtieron en nulos después de actualizar a Roboguice 3
- ¿Qué hace a Guice incapaz de funcionar en Android excepto como Guice-no-aop?
- ORMLite para Android: enlazar DAO con Roboguice
- Roboguice: el uso de las inyecciones manuales causa ConfigurationException (no se ha vinculado la implementación)
- Uso de Guice para inyectar dependencias en el constructor de una actividad de Android
- ¿Utilizando Inyección de Dependencia con Roboguice?
- Inyectar objetos de objetos en Class Util (usando Dagger)
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 🙁