2012-08-01 57 views
1

我創建了一個MonoDroid庫項目,並在項目中添加了一些資源。當我在C#類中使用這些資源時,它工作正常。 (爲此,我必須將這些和標籤添加到從應用程序項目複製的.csproj文件中)。在java文件中使用MonoDroid生成的資源?

現在我想使用我在.java文件中添加的資源。我添加了Java源文件並將構建操作設置爲AndroidJavaSource。不幸的是我找不到使用R命名空間的資源。沒有生成包含我的資源的.java文件。有沒有辦法在我的java文件中使用MonoDroid生成的資源?

背景:我想在我的項目中使用動作條和想過使用Android的ActionBarCompat項目(位於[...] \ Android的SDK \ SAMPLES \ Android的14 \ ActionBarCompat)的源文件,在圖書館項目。那裏的.java文件使用res文件夾中的佈局和其他資源,我也會複製它。我想用上述的方法。如果(現在)不可能,那麼採用更好方法的答案是值得歡迎的。 (不,請不要點我動作條等實現,謝謝你。這不是問題的範圍。)

回答

0

看來這個問題是由Xamarin前一段時間解決。我使用的是舊版本的MonoDroid,沒有時間升級到更新的版本。這是一個解決方法。

從庫文件資源Xamarin.Android編譯鏈接,並創建了一個名爲UpdateIdValues()在應用程序項目的Resources.designer.cs文件的功能。該函數用於修復庫項目中的資源ID到最終在主項目中生成的正確ID。出於這個原因,庫應用程序項目中的資源ID被聲明爲「public static int」而不是「public const int」。

在某些時候,他們忘記了在某處實際調用此函數。因此,一個Xamarin開發者提供了一個解決辦法: http://forums.xamarin.com/discussion/comment/5816/#Comment_5816

的解決方法爲我工作,當我升級Xamarin.Studio,我可以再次刪除解決方案,因爲它應該工作,然後開箱。