2012-08-01 55 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,我可以再次删除解决方案,因为它应该工作,然后开箱。