Verwenden Sie C# Library mit Mono für Android von Java Code?
-
25-10-2019 - |
Frage
Es besteht die Möglichkeit, die C# -Bibliothek mit Mono für Android von Java Code zu verwenden? Es ist möglich, dies von Objective-C bis C# (Monotouch) mit dem Flag "-Xcode" im Befehl mtouch zu tun. Aber es gibt ein Äquivalent in Mono für Android?
Und es gibt Gründe dafür?
Danke!
Gwennin
Lösung
Ist es möglich, die C# -Bibliothek mit Mono für Android von Java Code zu verwenden?
Ja. Jeder Java.lang.object Unterklasse hat eine Android Callable Wrapper zur Bauzeit generiert. Der Android Callable -Wrapper ist vorhanden, damit Java -Code den verwalteten Code anrufen kann (z. Aktivität.Oncreate () Android kann tatsächlich die verwaltete Override aufrufen.
Es gibt jedoch einige Einschränkungen; Insbesondere sind die einzigen Methoden, die im Android Callable Wrapper deklariert werden, überschriebene Methoden und Methoden, die von implementierten Schnittstellen stammen. Dies kompliziert das Java-> C# -Szenario.
Gibt es einen Grund dafür?
Ja. Es gibt eine Reihe von Umständen, unter denen Sie derzeit C#nicht verwenden können, z. android.jar
(zB der Karten -API). (Es gibt Android.runtime.jnienv, Aber das funktioniert nicht mit Szenarien der Subklasse.) Als solches ist der einfachste Weg, die Java -APIs zu verwenden Aktivitäten (unter Verwendung von Aktivität.StartActivity (), um eine verwaltete Aktivität von Java zu starten), JNIEnv
, Dienstleistungen usw.