2014-04-21 5 views
1

Je suis en train d'écrire un projet de bibliothèque android et voudrais ajouter le support pour maven. Mon fichier pom projet bibliothèque ressemble à ceci:Soutenir les projets de bibliothèque Android avec maven

<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>my_group_id</groupId> 
    <artifactId>my_artifactId</artifactId> 
    <version>1.0.1</version> 
    <packaging>apklib</packaging> 
    <name>My Library Project</name> 

    <dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <version>4.1.1.4</version> 
     <scope>provided</scope> 
    </dependency> 
    </dependencies> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <finalName>${project.artifactId}</finalName> 
    <plugins> 
     <plugin> 
     <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
     <artifactId>android-maven-plugin</artifactId> 
      <version>3.8.2</version> 
      <extensions>true</extensions> 
     <configuration> 
      <sdk> 
      <platform>19</platform> 
      </sdk> 
     </configuration>  
     </plugin> 
    </plugins> 
    </build> 
</project> 

Mon principal fichier pom projet ressemble à ceci:

<?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.simpligility.android</groupId> 
    <artifactId>helloflashlight</artifactId> 
    <version>1.0.0</version> 
    <packaging>apk</packaging> 

    <name>HelloFlashlight</name> 

    <dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <version>4.1.1.4</version> 
     <scope>provided</scope> 
    </dependency>   
    <dependency> 
    <groupId>my_group_id</groupId> 
    <artifactId>my_artifactId</artifactId> 
    <version>1.0.1</version> 
     <type>apklib</type> 
    </dependency>    
    </dependencies> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <finalName>${project.artifactId}</finalName> 
    <plugins> 
     <plugin> 
     <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
     <artifactId>android-maven-plugin</artifactId> 
      <version>3.8.2</version> 
      <extensions>true</extensions> 
     <configuration> 
      <sdk> 
      <platform>19</platform> 
      </sdk> 
     </configuration>  
     </plugin> 
    </plugins> 
    </build> 

</project> 

J'installe le projet de bibliothèque à mon référentiel local en utilisant:

mvn clean install 

alors je suis en train de compiler et d'installer le projet principal dans mon référentiel local en utilisant:

mvn clean install 

et générer l'APK en utilisant:

mvn android:deploy 

Maintenant, le problème se produit lorsque je compile le projet avec Maven. Le projet compile avec succès, cependant quand je cours l'apk sur le périphérique je reçois NullPointerException en essayant d'exécuter findById pour les ressources qui sont dans le projet de bibliothèque. Veuillez noter qu'une partie du temps findById renvoie une valeur, mais pas toujours le type correct (par exemple, la disposition attendue mais un bouton). Il est important de dire que lorsque vous courez en éclipse sans maven tout fonctionne parfaitement.

S'il vous plaît conseiller

Répondre

0

Enfin, je trouve la solution, donc je vais mettre à jour ma réponse pour les futurs lecteurs. La solution à ce problème était de créer un fichier aar à la place du fichier apklib en utilisant maven.

Questions connexes