2012-12-14 47 views
1

當我有當前正在使用ActionBarSherlock,Crouton和UnifiedPreference其中工程(編譯,運行沒有問題,在設備和模擬器爲Android 2.3.3以上版本)的項目。我想添加HoloEverywhere,以便在Gingerbread設備上運行時保持統一的界面。一旦我添加HoloEverywhere進來我收到以下錯誤AAPT:屬性已經定義使用HoloEverywhere和UnifiedPreference

[2012-12-14 12:47:04 - MyApp] C:\git\myrepo\UnifiedPreference\library\res\values\atrs.xml:7: error: Attribute "id" has already been defined 
[2012-12-14 12:47:04 - MyApp] C:\git\myrepo\UnifiedPreference\library\res\values\atrs.xml:11: error: Attribute "summary" has already been defined 
[2012-12-14 12:47:04 - MyApp] C:\git\myrepo\UnifiedPreference\library\res\values\atrs.xml:13: error: Attribute "breadCrumbTitle" has already been defined 
[2012-12-14 12:47:04 - MyApp] C:\git\myrepo\UnifiedPreference\library\res\values\atrs.xml:15: error: Attribute "breadCrumbShortTitle" has already been defined 
[2012-12-14 12:47:04 - MyApp] C:\git\myrepo\UnifiedPreference\library\res\values\atrs.xml:19: error: Attribute "fragment" has already been defined 

的AAPT錯誤引用哪個庫項目是第一(無論UnifiedPreference OR HoloEverywhere)在我的Android庫的依賴列表。我還發現,所有有問題的屬性被定義爲<declare-styleable name="PreferenceHeader">我目前Android的依賴順序和結構部分是:

MyApp 
    ActionBarSherlock 
    HoloEverywhere 
    UnifiedPreference 
    Crouton 
HoloEverywhere 
    ActionBarSherlock 
UnifiedPreference 
    ActionBarSherlock 
Crouton 

我試圖改變HoloEverywhere和UnifiedPreference的順序,從一個與製作移除ActionBarSherlock它依賴於另一個,並試圖再次從git中拉下來。

有誰知道如何獲得UnifiedPreference和HoloEverywhere很好地一起玩,因爲它們都具有相同名稱的屬性?

回答

2

呀,你得重新命名一些屬性,以擺脫AAPT的問題。一旦資源合併到您的項目中,您就不能擁有具有相同名稱的屬性。如果實際上它們是重複的屬性(意思是在其各自的項目中從頭開始定義並且實際上與其他項目相同),那麼簡單地刪除它們就留下包含這些屬性的最高依賴關係,並從較低依賴項中刪除它們。

+0

我還沒有添加任何自定義屬性,在我的項目衝突,並希望沒有編輯的庫代碼。這樣說我曾嘗試從一個項目中刪除x​​ml定義並更改依賴順序。當我這樣做時,即使其中一個依賴關係包含這些屬性,它也會在項目中發生構建錯誤。 –

+0

如果我理解正確,你的應用依賴於AB,HE,UP和油煎麪包塊?他取決於ABS和UP取決於ABS?我認爲問題是你只需要依賴ABS的依賴性最高,然後確保它的依賴性(即ABS)被導出。否則,你使用ABS 3次。那有意義嗎? – LuxuryMode

+0

@MikeS。,你弄清楚如何使它工作? – Felix

相關問題