android xamarin xamarin.android .net-standard

android - Convierta la biblioteca de clases.NET Standard a aar/jar nativo



xamarin xamarin.android (1)

Actualmente, estamos desarrollando una biblioteca de clases .NET Standard que será utilizada por diferentes plataformas Xamarin. *.

Me preguntaba si hay una manera de usar el código compartido en un proyecto nativo de Android (tal vez producir un archivo AAR / JAR).

La razón por la que necesito esta funcionalidad es porque nuestra empresa proporciona un AAR a uno de nuestros clientes (que es utilizado por un proyecto nativo de Android), y nos gustaría mantener una base de origen única en lugar de dos.

¡Gracias por adelantado!


Actualizar:

El nombre cambió a ".NET Embedded" y está en v0.4 en el momento de esta actualización.

Nuevas instrucciones:

Publicación original:

Puedes usar el Embeddinator-4000 Mono

Admite varios consumidores de idiomas, por lo que muestra el código .NET como código idiomático en el idioma de destino. Esta es la lista de idiomas admitidos actualmente:

  • Objective-C: mapeo .NET a las API idiomáticas de Objective-C.
  • Java: mapeo .NET a las API idiomáticas de Java.
  • C: asignación de .NET a una API orientada a objetos como C API.

Embeddinator-4000 es una herramienta que permite que su código .NET existente (C #, F # y otros) se consuma de otros lenguajes de programación y en diferentes entornos.

Java se encuentra actualmente en un estado de vista previa para macOS, Windows y Android.

La plataforma se selecciona pasando el argumento --platform = línea de comando al embebedor. Actualmente se admiten macOS, Windows y Android.

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

Como parte de los requisitos para Android, necesitará Xamarin.Android 7.4.99+ y Android Studio 3+ (Java 1.8), pero si está creando aplicaciones de Android con Xamarin y Java, ya las tendrá.

Nota: Esta herramienta está en Vista previa , así que revise los problemas abiertos y publique nuevos si es necesario.

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

Nota: Esto no es una compilación trans, sino que integra el tiempo de ejecución de Mono en un paquete nativo que permite que el código CIL, AOT''d (es decir, iOS) o no se ejecute en un idioma / tiempo de ejecución diferente.