2010-11-16 26 views
2

我正在使用此Maven腳本構建我的應用程序。但後來我得到了一大堆錯誤(請參閱發佈結束時)。這就好像沒有找到android.jar。我檢查了路徑android.jar,這很好。在Maven中構建Android項目:包*不存在

<?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> 

錯誤:

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

注意:我在maven-compiler-plugin中使用了,它的類路徑中沒有android.jar!這怎麼可能工作?在文檔中沒有任何地方說我必須向類路徑添加任何東西。 – Emmanuel 2010-11-18 15:57:23

回答

1

問題很簡單,<dependencyManagement>標籤不應該在那裏。

+1

上帝保佑你,先生,我在這上面浪費了幾個小時 – 2016-09-08 13:30:51

0

這一行:C:\ dev的\ Android的SDK-WINDOWS \平臺\ Android的4 /工具/ AAPT

你確定了/的在那裏是否正確並且需要?這可能是爲什麼android.jar沒有拿起..

+0

首先這是maven android插件(不在POM.xml文件中)的輸出,我不能修改它。其次,如果你看看這一行的結尾,它說C:\ dev \ android-sdk-windows \ platforms \ android-4 \ android.jar這是正確的(我在Start和Run中剪切並粘貼了它)工作)。 – Emmanuel 2010-11-16 21:07:23

0

我不能重現你的錯誤。但是對於我來說,使用2.1.2(平臺7)的android.jar並指定平臺4(Android 1.6)似乎很奇怪。如果你想讓你的應用在1.6上運行,你應該使用1.6以後的android.jar。因爲這是運行時可用的。

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

如果你想使用與平臺8(升級Froyo)喜歡的installLocation你不應該使用的平臺4,但8,而不是來了AndroidManifest.xml中的功能。

 <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> 

如果您使用Maven> Version 2.0.9(IIRC),則不必再指定插件的版本。最新版本將自動使用。

+0

我嘗試了兩種方法,並得到相同的錯誤。我正在使用Maven 2.2.1和Java 1.6.0。你說我可以刪除 xxx?從 ?? – Emmanuel 2010-11-18 15:18:57

+0

好的,我刪除了中的,它並沒有抱怨。但是我仍然得到同樣的錯誤。 – Emmanuel 2010-11-18 15:25:22