簡體   English   中英

由Android環境方法引起的Maven編譯錯誤

[英]Maven compilation error caused by Android environment methods

我對Maven還是很陌生,所以提前道歉。 我正在嘗試構建我以前在Eclipse中編寫和構建的應用程序,沒有任何問題。 當我嘗試構建項目時,我嘗試將項目轉換為Maven結構並創建pom.xml文件bu。我在使用的所有環境方法上均遇到編譯錯誤。 嘗試構建的輸出如下:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/*me*/workspace/*app*-Final/src/main/java/com/*org*/android/
*app*/SystemTests.java:[124,35] cannot find symbol
symbol:   method getStorageState(java.io.File)
location: class android.os.Environment
[ERROR] /C:/Users/*me*/workspace/*app*-Final/src/main/java/com/*org*/android/
*app*/SystemTests.java:[135,30] cannot find symbol
symbol:   method getBlockSizeLong()
location: variable stat of type android.os.StatFs
[ERROR] /C:/Users/*me*/workspace/*app*-Final/src/main/java/com/*org*/android/
*app*/SystemTests.java:[136,32] cannot find symbol
symbol:   method getBlockCountLong()
location: variable stat of type android.os.StatFs
[ERROR] /C:/Users/*me*/workspace/*app*-Final/src/main/java/com/*org*/android/
*app*/SystemTests.java:[190,34] cannot find symbol
symbol:   method getBlockSizeLong()
location: variable stat of type android.os.StatFs
[ERROR] /C:/Users/*me*/workspace/*app*-Final/src/main/java/com/*org*/android/
*app*/SystemTests.java:[191,36] cannot find symbol
symbol:   method getBlockCountLong()
location: variable stat of type android.os.StatFs
[INFO] 5 errors

我的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.*org*.android</groupId>
<artifactId>*app*</artifactId>
<version>1.0.0</version>
<packaging>apk</packaging>

<name>*app name*</name>
<properties>
    <!-- at test time this will be overridden with snapshot version -->
    <it-plugin.version>4.3.0</it-plugin.version>
</properties>

<dependencies>
    <dependency>
    <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>4.1.1.4</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.simpligility.maven.plugins</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <version>${it-plugin.version}</version>
                <extensions>true</extensions>
            </plugin>
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <groupId>com.simpligility.maven.plugins</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <configuration>
                <sdk>
                    <platform>19</platform>
                </sdk>
            </configuration>
        </plugin>               
    </plugins>
</build>
</project>

最后, mvn --version的輸出為:

Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06;  2015-04-22T12:57:3
7+01:00)
Maven home: C:\Program Files\Apache\maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_51\jre
Default locale: en_GB, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

提前致謝!

您可以從一開始就在eclipse中創建一個maven項目,也可以在創建后將其作為常規java項目對其進行mavenize(右鍵單擊eclipse項目“轉換為maven”)-如果已安裝了maven插件(m2e)。 確保清潔並建造。 另外,似乎您在系統Java8(Java版本:1.8.0_51,供應商:Oracle Corporation)上使用,但是在pom中,您將maven-compliler-plugin配置為針對1.7版的JRE。 確保已安裝此版本,並在eclipse中配置了路徑(項目屬性-> java構建路徑)。

您的Maven項目中有各種模塊嗎? pluginManagement僅是在所有項目模塊之間共享相同插件配置的一種方法。 您還需要將maven-compiler-plugin放在插件中。

該解決方案涉及將使用的Android版本更改為4.2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM