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.