Hello,

On 2012/06/21 10:05, Wally McClure wrote:
I'm working on an example of using the java binding library. I wanted to use a fairly well known java library, so a friend told me to use the commons-math jar library. Ok, sounds good to me. I plug this into a MfA java binding library, and of course, it generates a bunch of errors. This is actually good. Now, I need to go through and fix these errors as noted here: http://docs.xamarin.com/android/tutorials/Binding_a_Java_Library_%28.jar%29

This kind of Java-vs-C# mismatch always occurs and bites us. There are common patterns of troubles. We have some listed (I have to say, that's not very up to date though ...) :
http://docs.xamarin.com/android/tutorials/Binding_a_Java_Library_%28.jar%29#Troublshooting_Bindings


Some of the errors that I am getting are:
Error 1 'Gamma': member names cannot be the same as their enclosing type C:\Projects\MonoAndroidAppDev\New in 4.2\Projects\ExampleJavaBindings\BindingLibrary\obj\Debug\generated\src\Org.Apache.Commons.Math3.Special.Gamma.cs 12 23 BindingLibrary

We convert Java names from camelCase to PascalCase and that results in this kind of problem. Either the member or the type name has to be renamed via metadata fixup, e.g.

<attr path="/api/package[@name=...]/class[@name=...]" name="managedName">GanmaType</attr>

Error 2 The type or namespace name 'FirstMoment' does not exist in the namespace 'Org.Apache.Commons.Math3.Stat.Descriptive.Moment' (are you missing an assembly reference?) C:\Projects\MonoAndroidAppDev\New in 4.2\Projects\ExampleJavaBindings\BindingLibrary\obj\Debug\generated\src\Org.Apache.Commons.Math3.Stat.Descriptive.Moment.Mean.cs 30 70 BindingLibrary

The troubleshooting section in our site (mentioned above) contains "The binding .dll builds but misses some Java types" row. It contains a couple of common patterns, which may give you the answer.

Error 5 Type 'Org.Apache.Commons.Math3.Stat.Clustering.EuclideanIntegerPoint' already defines a member called 'GetCentroidOf_Ljava_util_Collection_Handler' with the same parameter types C:\Projects\MonoAndroidAppDev\New in 4.2\Projects\ExampleJavaBindings\BindingLibrary\obj\Debug\generated\src\Org.Apache.Commons.Math3.Stat.Clustering.EuclideanIntegerPoint.cs 90 19 BindingLibrary


The only possibility I can think of is some multiple-methods-to-events conversion conflict case as Miljenko mentioned. Any other reason is possible though.

Error 29 The name 'Handle' does not exist in the current context C:\Projects\MonoAndroidAppDev\New in 4.2\Projects\ExampleJavaBindings\BindingLibrary\obj\Debug\generated\src\Org.Apache.Commons.Math3.Stat.Descriptive.Moment.SecondMoment.cs 23 22 BindingLibrary

Error 33 The name 'SetHandle' does not exist in the current context C:\Projects\MonoAndroidAppDev\New in 4.2\Projects\ExampleJavaBindings\BindingLibrary\obj\Debug\generated\src\Org.Apache.Commons.Math3.Stat.Descriptive.Moment.SecondMoment.cs 51 5 BindingLibrary


I wonder if this type involves "handle" member in the Java library. That's what we haven't hit yet, but Handle is (as you would know) a special member from Java.Lang.Object and hence should exist in almost all types. In that case, this name conflict has to be again resolved by metadata xml fixup.

Error 35 'object' does not contain a constructor that takes 2 arguments C:\Projects\MonoAndroidAppDev\New in 4.2\Projects\ExampleJavaBindings\BindingLibrary\obj\Debug\generated\src\Org.Apache.Commons.Math3.Stat.Descriptive.Moment.SecondMoment.cs 62 28 BindingLibrary


Maybe this is due to other compilation error that caused type resolution failure and thus C# compiler tries to lookup the member from System.Object. This would change after you resolved other issues.

Atsushi Eno

I'm wondering what the proper step is to go about fixing them. Should I go through the code and manually fix this up? Is there something in the various transform files I should do? As much assistance as I can get in minute detail would be helpful.

Wally



_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to