我正在尝试将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>