es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Falla LoadLibrary() al agregar una biblioteca aar al servicio del sistema?

Escribí un Servicio del Sistema, pero falla al arrancar con el mensaje:

java.lang.UnsatisfiedLinkError: dlopen failed: library "libgojni.so" not found

Básicamente, en el código de la biblioteca .aar, intenta cargar una biblioteca utilizando System.loadLibrary(), pero falla, a pesar de que está en el archivo .aar. Incluso funciona cuando lo intento hacer en una aplicación de Android, pero falla en Android.

También puede ser relevante mencionar que creé la biblioteca .aar usando gomobile para enlazar un proyecto de Go en una biblioteca .aar.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que no se puede encontrar la biblioteca “libgojni.so”, a pesar de que está incluida en el archivo .aar. Este error puede ocurrir debido a un enlace o carga incorrecta de la biblioteca.

    Las posibles soluciones incluyen:

    • Verificar que la biblioteca esté enlazada correctamente al crear el archivo .aar. Consultar la documentación de gomobile para obtener instrucciones específicas relacionadas con el enlace de bibliotecas nativas.
    • Comprobar la ruta de la biblioteca en el archivo .aar y asegurarse de que coincida con la ruta esperada por el código del Servicio del Sistema.
    • Intentar establecer la ruta de la biblioteca en el código del Servicio del Sistema utilizando System.setProperty("java.library.path", "/ruta/a/la/biblioteca") antes de cargar la biblioteca.
    • Verificar que se hayan otorgado los permisos necesarios al Servicio del Sistema para cargar bibliotecas.

    Además, puede ser útil investigar aún más añadiendo declaraciones de registro o depurando el Servicio del Sistema para identificar la ubicación exacta donde se produce el error.

Comments are closed.