2014-01-30 98 views
0

我有一個應用程序,我決定實施ActionBarCompat,因爲它是一個谷歌支持庫,許多人都推薦它通過ActionBarSherlock。我首先將它作爲一個庫項目添加到Eclipse中,並將其連接到我正在處理的當前項目。實現ActionBarCompat導致r.java文件丟失

我加入這樣一個新的菜單項(刷新):

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" > 

<item 
    android:id="@+id/action_refresh" 
    android:title="@string/action_refresh" 
    android:icon="@drawable/ic_action_refresh" 
    app:showAsAction="ifRoom" /> 

<item 
    android:id="@+id/action_settings" 
    android:orderInCategory="100" 
    android:showAsAction="never" 
    android:title="@string/action_settings"/> 

</menu> 

然後叫onCreateOptionsMenu這樣的:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.schedule, menu); 

    return super.onCreateOptionsMenu(menu); 
} 

當我試圖編譯程序的時候,發出的錯誤(在編譯之前):

生成最終歸檔時出錯:java.io.FileNotFoundException:C:\ AndroidDevelopment \ Worksp ace \ STPSUrnik \ bin \ resources.ap_不存在

如果我清理項目,我的r.java文件丟失。

如果我刪除使用ActionBarCompat資源的刷新菜單項的屬性「圖標」和「標題」,則此錯誤消失,所以我猜測問題是連接到ActionBarCompat資源或其他東西。

+0

爲什麼爲一個'showAsAction'屬性和另一個''app'命名空間使用'android' xml命名空間? – NasaGeek

+0

@NasaGeek據我所知,我應該使用第一個應用程序命名空間,以便該應用程序知道它是ActionBarCompat,而另一個是基本設置(非庫),所以它有一個正常的命名空間 – Guy

+0

我是試圖說,情況並非如此(如[此處所述](http://developer.android.com/guide/topics/ui/actionbar.html#XmlAttributes))。 – NasaGeek

回答

0

我發現了這個問題。資源確實存在問題。我必須手動下載操作欄的「刷新」圖標並將其放入我的應用程序項目中。

它現在可以正常工作!

0

問題出在Eclipse上。清理項目後,有時候R.java文件仍然沒有恢復。

您可以嘗試從項目目錄中刪除gen和bin,然後再次嘗試導入項目並清理它。

也許這會有所幫助。

嘗試使用Android Studio ..直到現在我沒有得到R.java的任何問題。

+0

這不是問題。在刪除那一行後,R.java很容易恢復。 – Guy