![](/img/trans.png)
[英]maven compilation fails with error static interface methods are not supported in -source 1.7
[英]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.