2

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

<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. 我无法NativeClass从示例 Android 项目中引用。就像根本看不到命名空间一样。绑定项目构建成功,没有错误。
  2. 如果我删除包命名空间重命名设置,它也会成功构建,然后我可以在我的示例项目中引用它,但它要求我在使用它的任何地方完全限定类名:

    private com.company.blah.NativeClass nativeClass;

我希望如果我能修复#1,那么#2 就不会再出现了。如果是这样,我也很好奇您如何防止完全限定的类名出现?

4

1 回答 1

5

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

MyAssembly.csproj 属性

于 2016-02-10T03:06:17.420 回答