2013-04-14 61 views
4

我想能夠在我的Android項目(2.3)中使用操作欄,所以我想導入actionbarsherlock庫。然而,我有問題....導入.R無法解析當我導入actionbarsherlock

我已經導入了庫,編輯了我的android項目的構建路徑以包含庫,並且還從ABS/libs目錄中刪除了android-support-v4 jar並將我的項目的android-support-v4複製到ABS/libs目錄中以解決jar不匹配問題。但是,現在我已經完成了所有這些工作,我的項目無法在任何地方解決我的項目。我幾乎在所有.java文件中都導入myproject.R,它們都有相同的錯誤(「導入com.myproject.R無法解析」)。此外,當我清理我的項目,我得到在控制檯窗口中有很多錯誤的:

他們一直以來的走行:

error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Holo.Light'.

據我所知,R是所有佈局信息存儲,所以我不知道爲什麼這是一個問題...

我一直在這個錯誤工作了幾天,我非常沮喪,最後決定採取它堆棧溢出。感謝球員的幫助!

+0

你不應該需要添加'import R.'到你的任何Java文件。不幸的是,你遇到了一個Eclipse的問題,它碰到了我們中的很多人,即改變了一些東西,Eclipse引發了一個搖擺。你有沒有嘗試在窗口窗口 - >顯示窗口 - >問題?你也可以嘗試清理你的項目。 – Kerry

+0

導入'R'的問題通常與類路徑或類衝突中出現的問題有關;在這些情況下,sdk無法創建R.java--每次編譯項目時都會自動生成。請仔細檢查**問題**選項卡,並讓我們知道您找到了什麼。 – ssantos

+0

導入R ..是錯誤的。您是否在導入R文件之前嘗試清理/重建項目? – Elior

回答

0

edited the build path of my android project to include the library

切勿手動修改Android項目的構建路徑。

ActionBarSherlock是一個Android庫項目。您需要將add a reference添加到主應用程序項目的ActionBarSherlock的庫項目中,並撤消手動更改爲構建路徑。


UPDATE

你問題的後半部分是您的構建目標定得太低。構建目標控制應用程序可以使用哪些版本的Android類,資源等,如果您使用ActionBarSherlock,則需要將其設置爲API Level 14或更高版本。

if I make my project build target 4.0, can I still run it on an emulator/phone running Android 2.3?

是的。將您的android:minSdkVersion設置爲10或更低。如果你不小心嘗試使用比你的minSdkVersion更高的類,方法等,那麼Eclipse(通過Lint)會對你大吼,即使它們因爲構建目標而合法。

+0

CommonsWare,感謝您的幫助!我沒有添加引用(屬性> android>添加庫)。但我做了rightclick項目>構建路徑>配置>項目>添加>選擇actionsherlock庫,我應該沒有這樣做? – bhsu

+0

@moneydev:「我不應該那樣做嗎?」 - 對,你不應該那樣做。 – CommonsWare

+0

好吧,我走到了修路,把它拿出來。但是我仍然有所有這些都無法解決R錯誤。僅供參考,如果我刪除項目屬性中的ABS庫,則一切正常(在/ gen中有R.java)。但後來我在屬性中添加了ABS庫,並應用(如上面所述的第2個帖子),然後我得到所有這些錯誤氾濫...... – bhsu

4

ActionBarSherlock是一個圖書館項目

所以導入庫項目在Eclipse

enter image description here

它的庫項目。檢查右鍵點擊你的圖書館項目。轉到屬性。

選擇android。您將看到一個Is Library被檢查,如下圖所示。

enter image description here

庫項目添加到您的Android項目。

右鍵單擊您的Android項目。轉到屬性。選擇android。點擊添加按鈕將庫添加到您的項目。你可以在下面的圖片中看到一個綠色的勾號。

enter image description here

請確保您有Andorid的-suuport-v4.jar的一個副本在你的libs文件夾。

請勿導入R. *;

您將看到兩個R.java一個用於庫項目,另一個用於您的android項目。 清潔和構建。

enter image description here

+0

嗨拉古南丹,謝謝你的回答。我的確如你所說,但在我的gen文件夾中,我沒有com.actionsherlock包,甚至在我自己的項目包中,我沒有R.java(我只有BuildConfig.java)。我記得之前我有一個R.java,但是一旦我添加actionsherlock作爲一個庫,R.java似乎就消失了。任何想法,爲什麼這是? – bhsu

+0

@moneydev:「但是,一旦我將actionsherlock添加爲庫,R.java似乎消失了」 - 您的清單或資源中有錯誤 - 請檢查Eclipse Console選項卡以查看錯誤消息。 – CommonsWare

+0

@CommonsWare在我的Eclipse控制檯選項卡中,我有很多紅色的錯誤消息,幾乎都說同樣的事情。他們說:「... \ library \ res \ values-v14 \ abs__themes.xml:30:錯誤:檢索父項的錯誤:找不到與給定名稱相匹配的資源'android:Theme。Holo.Dialog'「<這僅僅是一個例子 – bhsu

0

我發現,如果 中的minSdkVersion項目的AndroidManifest.xml中比庫時, 這也使該項目將被錯誤打造R.java

相關問題