1

我创建了一个 MonoDroid 库项目并向项目中添加了一些资源。当我在 C# 类中使用这些资源时,它工作正常。(为此,我必须将 and 标记添加到从应用程序项目复制的 .csproj 文件中)。

现在我想使用我在 .java 文件中添加的资源。我添加了 Java 源文件并将构建操作设置为 AndroidJavaSource。不幸的是,我找不到使用 R 命名空间的资源。没有生成包含我的资源的 .java 文件。有没有办法在我的 java 文件中使用 MonoDroid 生成的资源?

背景:我想在我的项目中使用 ActionBar,并考虑在 Library 项目中使用 Android 的 ActionBarCompat 项目(位于 [...]\android-sdk\samples\android-14\ActionBarCompat)作为源文件。那里的 .java 文件使用其 res 文件夹中的布局和其他资源,我也会将其复制过来。我想使用上述方法。如果(目前)不可能,欢迎使用更好的方法回答。(不,请不要将我指向其他 ActionBar 实现,谢谢。这不是问题的范围。)

4

1 回答 1

0

Xamarin 前段时间似乎解决了这个问题。我使用的是旧版本的 MonoDroid,没有时间升级到新版本。这是一种解决方法。

Xamarin.Android 编译器从库文件中链接资源,并在应用项目的 Resources.designer.cs 文件中创建一个名为 UpdateIdValues() 的函数。该函数用于将库项目中的资源 id 固定为最终在主项目中生成的正确 id。出于这个原因,库项目中的资源 ID 被声明为“public static int”,而不是应用程序项目中的“public const int”。

在某些时候,他们忘记了在某个地方实际调用这个函数。因此,Xamarin 开发人员提供了一种解决方法: http ://forums.xamarin.com/discussion/comment/5816/#Comment_5816

该解决方法对我有用,当我升级 Xamarin.Studio 时,我可以再次删除该解决方法,因为它应该可以开箱即用。

于 2013-08-30T09:51:42.073 回答