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

Ada*_*dam 2 java-native-interface xamarin.android xamarin java-binding

我正在为包含单个类的现有JAR创建Xamarin Android绑定库,并遵循Xamarin绑定库文档,可以使用以下方法成功重命名名称空间:

<attr path="/api/package[@name='com.company.blah']" name="managedName">Company.Blah</attr>
Run Code Online (Sandbox Code Playgroud)

我还确认了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 
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我面临两个问题:

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

    private com.company.blah.NativeClass nativeClass;

我希望如果我能修复#1,那么#2将不会再次出现。如果是这样,我也很好奇您如何阻止显示完全合格的类名?

Ada*_*dam 5

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

MyAssembly.csproj属性