Xamarin Android绑定库自定义命名空间无法识别

时间:2016-02-07 17:51:59

标签: xamarin java-native-interface xamarin.android java-binding

我正在为包含单个类的现有JAR创建一个Xamarin Android绑定库,并且在Xamarin binding library documentation之后,我能够使用以下命令成功重命名命名空间:

<attr path="/api/package[@name='com.company.blah']" name="managedName">Company.Blah</attr>

我还确认在'obj / Debug'文件夹中生成的类中更改了命名空间:

namespace Company.Blah {

    // Metadata.xml XPath class reference: path="/api/package[@name='com.company.blah']/class[@name='NativeClass']"
    [global::Android.Runtime.Register ("com/sprylab/android/widget/TextureVideoView", DoNotGenerateAcw=true)]
    public partial class NativeClass 
    {
        ...
    }
}

我面临两个问题:

  1. 我无法从示例Android项目中引用NativeClass。这就像根本看不到名称空间。绑定项目成功构建,没有错误。
  2. 如果我删除了包命名空间重命名设置,它也会成功构建,然后我可以在我的示例项目中引用它,但需要我完全限定了类名称的任何位置使用:

    private com.company.blah.NativeClass nativeClass;

  3. 我希望如果我能解决#1,那么#2将不再出现。如果是这样,我也很好奇你是如何阻止完全合格的类名出现的?

1 个答案:

答案 0 :(得分:5)

进入绑定库项目的项目设置并清除程序集名称右侧的框似乎可以解决问题。直接查看csproj,它是根命名空间。

MyAssembly.csproj Properties