Monodroid java库绑定:如何将所有构造函数设置为public



我正在尝试将java库绑定到我的monodroid项目。我正在使用Amazon Mobile Associates库,我正在尝试这样做:

AssociatesAPI。初始化(新AssociatesAPI。配置(APPLICATION_KEY));

不幸的是,即使这个AssociatesAPI。Config(string, context) constructor是public,它使用第二个构造函数:

public Config (string p0, Context p1) : base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)

和构造函数

protected Config (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer)

是保护。

当我使用Metadata.xml时,我可以设置类构造函数public:

< attr path="/api/package[@name='com.amazon.device.associates']/class[@name='AssociatesAPI.Config']/constructor" name="visibility">public< /attr>

,但这只设置了一个构造函数,受保护的构造函数保持受保护状态。所以当我在应用程序中使用这个库时,我得到错误:

Error CS1540: Cannot access protected member   `Com.Amazon.Device.Associates.AssociatesAPI.Config.Config(System.IntPtr,     Android.Runtime.JniHandleOwnership)' via a qualifier of type     `Com.Amazon.Device.Associates.AssociatesAPI.Config'. 
The qualifier must be of type `Mews.Client.Navigator.TabletAndroid.Activities.Services.ServiceDetailActivity' (<i>this is my activity I'm passing as a Context</i>) or derived from it (CS1540)

Error CS0122: `Com.Amazon.Device.Associates.AssociatesAPI.Config.Config(System.IntPtr, Android.Runtime.JniHandleOwnership)' is inaccessible due to its protection level (CS0122) (Mews.Client.Navigator.TabletAndroid)

当我编译库项目时,没有关于未找到节点或错误xpath的错误或警告,这通常在attr中指定错误的路径或类名时出现。

有人能帮我吗?

谢谢

在Transforms/Metadata.xml中添加如下内容:

<attr path="/api/package[@name='Name_of_the_package']/class[@name='myclass']/method[@name='methodname']" name="visibility"> public</attr>

最新更新