2010-11-16 23 views
2

Je crée mon application à l'aide de ce script Maven. Mais alors je reçois un tas d'erreurs (voir à la fin de l'affichage). C'est comme si android.jar est introuvable. J'ai vérifié le chemin à android.jar et c'est bien.Création d'un projet Android dans Maven: Le package * n'existe pas

<?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>my.group.id</groupId> 
    <artifactId>myproject1.0</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>apk</packaging> 
    <name>MyProject</name> 

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

    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>maven-android-plugin</artifactId> 
       <version>2.6.0</version> 
       <configuration> 
        <sdk> 
         <platform>4</platform> 
        </sdk> 
        <emulator> 
         <avd>16</avd> 
        </emulator> 
        <deleteConflictingFiles>true</deleteConflictingFiles> 
        <undeployBeforeDeploy>true</undeployBeforeDeploy> 
       </configuration> 
       <extensions>true</extensions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Erreurs:

C:\projectX>mvn install -e 
+ Error stacktraces are turned on. 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building MyProject 
[INFO] task-segment: [install] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [android:generate-sources {execution: default-generate-sources}] 
[INFO] ANDROID-904-002: Found aidl files: Count = 0 
[INFO] ANDROID-904-002: Found aidl files: Count = 0 
[INFO] Copying local resource files to combined resource directory. 
[INFO] C:\dev\android-sdk-windows\platforms\android-4/tools/aapt [package, -m, -J, \ 
     C:\projectX\target\generated-sources\r, -M, C:\projectX\AndroidManifest.xml, -S, \ 
     C:\projectX\target\generated-sources\combined-resources\res,-A, C:\projectX\assets, -I, \ 
     C:\dev\android-sdk-windows\platforms\android-4\android.jar] 

[ERROR] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Compilation failure 

C:\projectX\src\com\projectx\MyClass.java:[13,22] package org.apache.http does not exist 
C:\projectX\src\com\projectx\MyClass.java:[23,29] package org.apache.http.entity does not exist 
C:\projectX\src\com\projectx\MyClass.java:[28,29] package org.apache.http.params does not exist 
C:\projectX\src\com\projectx\MyClass.java:[30,22] package android.content does not exist 
C:\projectX\src\com\projectx\MyClass.java:[31,19] package android.util does not exist 
C:\projectX\src\com\projectx\MyClass.java:[50,9] cannot find symbol 
symbol : class DefaultHttpClient 
location: class com.projectx.MyClass 

C:\projectX\src\com\projectx\MyService.java:[10,24] package android.telephony does not exist 
C:\projectX\src\com\projectx\MyService.java:[13,18] package android.app does not exist 
C:\projectX\src\com\projectx\MyService.java:[19,22] package android.content does not exist 
C:\projectX\src\com\projectx\MyService.java:[23,40] package android.content.SharedPreferences does not exist 
C:\projectX\src\com\projectx\MyService.java:[25,18] package android.net does not exist 
C:\projectX\src\com\projectx\MyService.java:[28,17] package android.os does not exist 
C:\projectX\src\com\projectx\MyService.java:[29,25] package android.preference does not exist 
C:\projectX\src\com\projectx\MyService.java:[30,19] package android.util does not exist 
C:\projectX\src\com\projectx\MyService.java:[31,19] package android.view does not exist 
C:\projectX\src\com\projectx\MyService.java:[34,21] package android.widget does not exist 
C:\projectX\src\com\projectx\MyService.java:[54,36] cannot find symbol 
symbol: class Service 
public class MyService extends Service { 

C:\projectX\src\com\projectx\MyClass.java:[103,34] cannot find symbol 
symbol : class Context 
location: class com.projectx.MyClass 

C:\projectX\src\com\projectx\MyClass.java:[209,46] cannot find symbol 
symbol : class Context 
location: class com.projectx.MyClass 

C:\projectX\src\com\projectx\MyClass.java:[229,37] cannot find symbol 
symbol : class Context 
location: class com.projectx.MyClass 

C:\projectX\src\com\projectx\MyService.java:[75,16] cannot find symbol 
symbol : class PendingIntent 
location: class com.projectx.MyService 

...truncated... 

[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
org.apache.maven.BuildFailureException: Compilation failure 
+0

NOTE: J'ai utilisé le dans le plugin maven-compiler et il n'a pas android.jar dans son classpath! Comment cela peut-il fonctionner? Nulle part dans la documentation ne dit que je dois ajouter quelque chose au classpath. – Emmanuel

Répondre

1

Le problème était simplement que l'étiquette <dependencyManagement> n'est pas supposée être là.

+1

Que Dieu vous bénisse monsieur, j'ai perdu des heures sur ce –

0

cette ligne: C: \ dev \ windows-sdk-android \ plateformes \ android-4/outils/AAPT

êtes-vous que le/'s ont raison et ont besoin là? thatmight être pourquoi le android.jar n'a pas été ramassé ..

+0

D'abord, ceci est sorti du plugin maven android (pas dans le fichier POM.xml) et je ne peux pas le modifier. Deuxièmement, si vous regardez la fin de cette même ligne, il est écrit C: \ dev \ android-sdk-windows \ plateformes \ android-4 \ android.jar ce qui est correct (je l'ai coupé et collé dans Démarrer> Exécuter et travaillé). – Emmanuel

0

Je ne peux pas reproduire votre erreur. Mais il me semble étrange que vous utilisiez le android.jar pour 2.1.2 (plate-forme 7) et spécifiez la plate-forme 4 (Android 1.6). Si vous voulez que votre application fonctionne sur 1.6, vous devez utiliser le fichier android.jar à partir de la version 1.6. comme c'est ce qui est disponible à l'exécution.

 <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <version>1.6_r2</version> 
      <scope>provided</scope> 
     </dependency> 

Si vous voulez utiliser des fonctionnalités du AndroidManifest.xml fournies avec la plate-forme 8 (Froyo) comme installLocation vous ne devriez pas utiliser la plate-forme 4 mais 8 à la place.

 <plugin> 
      <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
      <artifactId>maven-android-plugin</artifactId> 
      <configuration> 
       <sdk> 
        <path>${env.ANDROID_HOME}</path> 
        <platform>8</platform> 
       </sdk> 
       <deleteConflictingFiles>true</deleteConflictingFiles> 
      </configuration> 
      <extensions>true</extensions> 
     </plugin> 

Si vous utilisez Maven> Version 2.0.9 (IIRC) vous ne devez pas spécifier la version des plug-ins plus. La nouvelle version est utilisée automatiquement.

+0

J'ai essayé dans les deux sens et j'ai eu les mêmes erreurs. J'utilise Maven 2.2.1 et java 1.6.0. Vous dites que je peux simplement supprimer xxx? De ou ?? – Emmanuel

+0

Ok, j'ai supprimé le à l'intérieur du et il ne s'est pas plaint à ce sujet. Mais j'ai toujours la même erreur. – Emmanuel