2014-07-13 54 views
1

我正试图将java库存入我的monodroid项目。我正在使用亚马逊移动联盟库,我试图这样做:Monodroid java库绑定:如何设置所有构造函数public

AssociatesAPI.Initialize(new AssociatesAPI.Config(APPLICATION_KEY,this));

可惜的是,即使这AssociatesAPI.Config(字符串,上下文)的构造是公开的,它使用了第二个构造:

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

和构造

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

保护。

当我使用metadata.xml中我可以设置类的构造函数市民:

< 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中指定错误的路径或类名时出现。

任何人都可以帮助我吗?

谢谢

回答

0

添加像这样的变换/ metadata.xml中:

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