2017-10-02 4 views
2

Actuellement, nous développons une bibliothèque de classes .NET Standard qui sera utilisée par différentes plates-formes Xamarin. *. Je me demandais s'il y avait un moyen d'utiliser le code partagé dans un projet Android natif (peut-être produire un fichier AAR/JAR). La raison pour laquelle j'ai besoin de cette fonctionnalité est que notre société fournit un AAR à un de nos clients (qui est utilisé par un projet Android natif), et nous souhaitons conserver une base source unique au lieu de deux.Conversion de la bibliothèque de classes .NET Standard en aar/jar natif

Merci d'avance!

Répondre

3

Vous pouvez utiliser de Mono Embeddinator-4000

Il prend en charge différents consommateurs de langue, de sorte qu'il surfaces du code .NET code idiomatiques dans la langue cible. Voici la liste des langues prises en charge à l'heure actuelle:

  • Objective-C: .NET mappage idiomatiques API Objective-C.
  • Java: mappage .NET aux API Java idiomatiques.
  • C: mappage de .NET à des API C orientées objet.

Embeddinator-4000 est un outil qui permet à votre à consommer d'autres langages de programmation et dans divers environnements différents code .NET existant (C#, F # et d'autres).

Java est actuellement dans un état d'aperçu pour macOS, Windows et Android.

La plate-forme est sélectionnée en transmettant l'argument --platform = ligne de commande à l'intégrateur. Actuellement, macOS, Windows et Android sont pris en charge.

re: https://mono.github.io/Embeddinator-4000/

En tant que partie du besoin pour Android, vous aurez besoin Xamarin.Android 7.4.99+ et Android studio 3+ (Java 1.8), mais si vous construisez des applications Android avec Xamarin et Java vous aurait déjà ceux-ci.

Remarque: Cet outil est en Aperçu, alors passez en revue les problèmes en suspens et publiez-en un nouveau si nécessaire.

re: https://github.com/mono/Embeddinator-4000/issues

Note: Ce n'est pas trans-compilation, mais l'intégration de l'exécution de Mono dans un paquet natif qui permettent le code de CIL, AOT'd (à savoir iOS) ou de ne pas exécuter dans une autre langue/exécution .

+0

Génial, je vais essayer. Merci beaucoup! –