2013-08-21 96 views
3

我正在使用RoboGuice和Eclipse ADT,m2e和android-maven-plugin一起使用RoboGuice。Maven Eclipse Plugin不會添加Android支持-v4來構建路徑

我使用RoboListFragment類取決於android.support.v4.app.ListFragment,爲此我已經添加了以下依賴關係的pom.xml

<dependency> 
    <groupId>com.google.android</groupId> 
    <artifactId>support-v4</artifactId> 
    <version>r7</version> 
    <scope>provided</scope> 
</dependency> 

不過Eclipse一樣,添加該庫來構建路徑。 當我從命令行構建我的項目時,一切正常,但在eclipse中,我收到以下錯誤消息:

無法解析類型android.support.v4.app.Fragment。它是從所需的.class文件間接引用的

我發現的唯一解決方法是將它作爲外部jar添加到構建路徑,但是.classpath引用我自己的主目錄。

+0

可能會有所幫助http://stackoverflow.com/questions/16588378/actionbarsherlock -the-type-android-support-v4-app-fragment-can-be-resolved –

+0

@SuryaprakashPisay我已經試過這種方式沒有成功:( – dbellettini

回答

4

嘗試刪除

<scope>provided</scope> 

在Maven中,這意味着支持-V4將在類路徑(見http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

+0

刪除提供工程。謝謝!(但我不知道它是一個乾淨的方式) – dbellettini

+0

'provided'意味着應用程序是預期的爲容器(或其他類路徑提供者)提供該依賴關係。因此,Maven(和Eclipse)不會單獨下載它。 「提供」範圍的典型用途是用於像Tomcat,WebLogic或其他應用程序服務器提供的Java EE庫之類的東西。 – user944849

+0

Maven下載提供了工件。這些工件只會用於編譯,並且不會包含在最終包中,因爲它們是由框架提供的(就像您說的那樣,用於Tomcat的Servlet API)。 @dbellettini如果這解決了你的問題,你應該接受答案。它使事情更容易閱讀。 – pralonga