Errors and warnings when Binding a Java Library in Xamarin?

831 Views Asked by At

I am trying to integrate the SightCall Android SDK in my Xamarin app. Since the SDK contains a jar and .so file I need to bind it as a Java Binding Library as then add it as a Reference in my project. I followed the steps of creating a Java Binding project given in the Xamarin website but after building I'm getting 12 errors and many warnings. The 12 errors are below:

C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.cs(8,8): Error CS0019: Operator '!=' cannot be applied to operands of type 'Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.Type' and 'System.Type' (CS0019) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.cs(7,7): Error CS1502: The best overloaded method match for 'Android.Runtime.JNIEnv.StartCreateInstance(System.IntPtr, System.IntPtr, params Android.Runtime.JValue[])' has some invalid arguments (CS1502) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.cs(59,59): Error CS1503: Argument 1: cannot convert from 'Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.Type' to 'System.IntPtr' (CS1503) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.cs(71,71): Error CS1503: Argument 2: cannot convert from 'string' to 'System.IntPtr' (CS1503) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.cs(9,9): Error CS0019: Operator '==' cannot be applied to operands of type 'Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.Type' and 'System.Type' (CS0019) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.cs(9,9): Error CS0019: Operator '==' cannot be applied to operands of type 'Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.Type' and 'System.Type' (CS0019) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.cs(8,8): Error CS0019: Operator '==' cannot be applied to operands of type 'Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent.Type' and 'System.Type' (CS0019) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.StatusEvent.cs(8,8): Error CS0019: Operator '!=' cannot be applied to operands of type 'Net.Rtccloud.Sdk.Event.Meetingpoint.StatusEvent.Type' and 'System.Type' (CS0019) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.StatusEvent.cs(7,7): Error CS1502: The best overloaded method match for 'Android.Runtime.JNIEnv.StartCreateInstance(System.IntPtr, System.IntPtr, params Android.Runtime.JValue[])' has some invalid arguments (CS1502) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.StatusEvent.cs(59,59): Error CS1503: Argument 1: cannot convert from 'Net.Rtccloud.Sdk.Event.Meetingpoint.StatusEvent.Type' to 'System.IntPtr' (CS1503) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.StatusEvent.cs(71,71): Error CS1503: Argument 2: cannot convert from 'string' to 'System.IntPtr' (CS1503) (SightCallBindingLibrary)
C:\Users\user\Documents\Projects\SightCallBindingLibrary\SightCallBindingLibrary\obj\Debug\generated\src\Net.Rtccloud.Sdk.Event.Meetingpoint.StatusEvent.cs(8,8): Error CS0019: Operator '==' cannot be applied to operands of type 'Net.Rtccloud.Sdk.Event.Meetingpoint.StatusEvent.Type' and 'System.Type' (CS0019) (SightCallBindingLibrary)

Could you please let me know how can I fix the above issues?

Edit

<metadata>
    <!--
  This sample removes the class: android.support.v4.content.AsyncTaskLoader.LoadTask:
  <remove-node path="/api/package[@name='android.support.v4.content']/class[@name='AsyncTaskLoader.LoadTask']" />

  This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground:
  <remove-node path="/api/package[@name='android.support.v4.content']/class[@name='CursorLoader']/method[@name='loadInBackground']" />
  -->
<!--   <remove-node path="/api/package[@name='Net.Rtccloud.Sdk.Event.Meetingpoint']/class[@name='RequestEvent.Type']" />-->
<!--    <remove-node path="/api/package[@name='Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent']"/>-->
 <!--   <remove-node path="/api/package[@name='Net.Rtccloud.Sdk.Event.Meetingpoint.MeetingPointEvent']/class[@name='RequestEvent.Type']"/>-->


</metadata>

I have commented out the various ways in which I tried as I get a warning that the removed node path matched no nodes.

1

There are 1 best solutions below

0
On BEST ANSWER

As described here, bindings should respect the java package naming convention (lowercased).

Here, it should be :

net.rtccloud.sdk.event.meetingpoint.RequestEvent
instead of
Net.Rtccloud.Sdk.Event.Meetingpoint.RequestEvent