2010-08-08 80 views
7

我也跟着在這裏如何建立一個Android庫項目,並在Android應用程序中使用它進行操作:R.java文件

http://developer.android.com/guide/developing/eclipse-adt.html

但不工作。我可以看到庫項目已添加到我的應用程序中,但我無法引用任何內容,因爲它不會構建。 lib中的R.java文件不會被添加到我的應用程序項目中,所以lib項目包含大量錯誤,無論它試圖引用它自己的R.java文件。

我不知道這是否與它有任何關係,但是在控制檯中有消息指出「Package Package'中沒有找到屬性'X'的資源標識符。有一些爲我定製的自定義視圖定義了一些可定製的屬性,所有這些都是在這個控制檯消息中抱怨的。庫構建得很好,我沒有在控制檯中看到這些消息,直到我把庫掛到我的應用程序中,所以我不知道這是怎麼回事

我真的想這個工作,我已經花了整整兩天,沒有用,請提供任何你可能需要幫助的想法!

+0

我有同樣的問題,我沒有使用自定義屬性。我只想讓我的庫R在我的主應用程序中可見。看來Eclipse會正確生成_src文件,但在庫/ gen文件夾內生成的R類不會在我的主項目中鏈接。我該怎麼辦?我不想自己連接它,它會在以後破壞事情。 – Spidey 2010-10-28 21:54:02

回答

14

answ呃我的難題是,該庫有一個attrs.xml文件,它爲我創建的自定義視圖定義了一些自定義屬性。我刪除了attrs.xml並對自定義視圖代碼中的值進行了硬編碼,重建了庫並解決了問題。

雖然這並不酷,但這意味着具有自定義屬性的自定義視圖不能在庫中使用。我希望Google修復此問題。

+0

我沒有使用任何attrs.xml,但我的應用程序沒有得到構建,我怎麼可以參考其他Java類(這不是由活動或服務或接收器擴展) – Sam 2011-09-02 07:42:42

+0

@ChristopherPerry你有[或你知道]提交一個錯誤報告?我同意,谷歌應該解決這個問題。無法在庫中實現自定義視圖是完全荒謬的。 – AedonEtLIRA 2012-04-20 16:09:21

+0

那麼,只要您不嘗試定義視圖中使用的任何自定義屬性,就可以實現自定義視圖。無論如何,我使用這個庫的方式有點有問題。 – 2012-04-21 06:42:49

0

這實際上是一個文件重複的問題。您無法構建包含同一文件的多個實例的項目。由於android項目的性質,XML文件通常是第一個否定成功構建的。

+0

資源應該在您的圖書館項目和您的應用程序項目之間合併。出於某種原因,我現在不在意進行研究,但屬性並未合併。 – 2012-07-20 17:15:15

+1

您可以*使用同一文件的多個實例構建一個項目,例如'splashscreen_lite.png'和'splashscreen_pro.png'。正如@Eitan Schwartz所說,這些將在構建時進行合併,應用程序項目資源優先於庫項目資源。 – 2013-01-25 08:20:11