0

There is a possibility to use C# library with Mono for Android from Java code? It's possible to do it from Objective-C to C# (MonoTouch) with the "--xcode" flag in the mtouch command. But there is an equivalent in Mono for Android?

And there is a reasons to do it?

thanks!

Gwennin

1 Answer 1

0

[Is it possible to] use C# library with Mono for Android from Java code?

Yes. Every Java.Lang.Object subclass has an Android Callable Wrapper generated at build time. The Android Callable Wrapper is present to allow Java code to call into managed code (e.g. so that when you override Activity.OnCreate() Android can actually invoke the managed override.

However, there are a few limitations; in particular, the only methods that are declared in the Android Callable Wrapper are overridden methods and methods coming from implemented interfaces. This complicates the Java->C# scenario.

[Is there] a reason to do it?

Yes. There are a number of circumstances in which you currently can't use C#, e.g. using types that are outside of android.jar (e.g. the Maps API). (There is Android.Runtime.JNIEnv, but that doesn't work with subclassing scenarios.) As such, the easiest way to make use of the Java APIs is to write some of the code in Java, then integrate the Java and managed code via a variety of mechanisms, including separate activities (using Activity.startActivity() to launch a managed activity from Java), JNIEnv, services, etc.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.