2013-08-13 6 views
4

J'essaie de créer un projet de base Android en utilisant archetype android-quickstart, et en ajoutant RoboGuice, dépendances ActionBarSherlock, plus RoboGuice-Sherlock pour combiner les deux.Maven + RoboGuice + ActionBarSherlock + RoboGuice-Sherlock

Ceci est mon 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> 

Mais m2eclipse habitude travailler avec ce pom.xml, car il est incapable de trouver la dépendance apklib. Speficically Je reçois le message suivant sous l'onglet « Problèmes » dans 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 

J'ai essayé d'enlever la ligne <type>apklib</type> mais mes ressources ABS (à savoir les thèmes nécessaires) ne sont pas importés dans le projet. J'ai lu dans several questions que le type apklib ne fonctionne que sur la ligne de commande, et que si je veux coller à l'IDE, j'ai besoin d'importer manuellement l'ABS comme une bibliothèque. Je l'ai fait, mais ensuite RoboGuice se bloque parce que le projet devient un projet de bibliothèque et, apparemment, les identifiants de ressources ne sont plus définitifs dans les projets de bibliothèque. (L'erreur de compilation que je reçois est "La valeur de l'attribut d'annotation InjectView.value doit être une expression constante"). Pour référence, ceci est ma seule activité:

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"); 
    } 

} 

Est-il possible de créer un bon projet de base avec ces trois éléments en utilisant maven et Eclipse?

Répondre

1

Il s'avère que j'ai accidentellement cliqué sur la case "Is Library" sur les propriétés du projet. Maintenant, il fonctionne avec ABS importé manuellement en tant que bibliothèque.

Il est dommage que de ne pas pouvoir utiliser Maven directement :(

+0

fonctionne-t-mvn sur la ligne de commande? Nous utilisons ces libs tout le temps avec la ligne mvn cmd construit, mais n'a pas essayé éclipse. – emmby

Questions connexes