2012-06-10 13 views
5

Se supone que debo crear un SDK que sea fácil de usar, por lo que necesito que esté en un solo archivo jar. Los recursos son problemáticos, pero ¿qué pasa si incluimos archivos ".so", que son bibliotecas creadas por NDK (generalmente ubicadas en la carpeta "libs/armeabi")?Crear un SDK (archivo jar individual) con archivos "so"

¿Es posible agregar los archivos ".so" en el archivo jar, para que quien utiliza el archivo jar del SDK no tenga que agregarlos a su carpeta libs en su proyecto?

Si es así, cómo y, de no ser así, ¿hay alguna solución?

Para aclarar: quien usa el SDK solo debe usar un solo archivo jar, que contendrá todo lo que se necesita para usar el SDK, incluidos los archivos ".so".

Tenga en cuenta que si pongo la carpeta libs (y los archivos ".so" en ella) en el proyecto que usa el SDK, funciona bien. Lo mismo ocurre si utilizo el proyecto SDK como un proyecto de Android.

Respuesta

3

En realidad es lo que Android hace desde ADT 17 ha llegado. Como cuestión de hecho, cuando crea un library project y lo importa en otro proyecto, Android crea un jar file. Esto también es válido para native library. Simple cuando construye su biblioteca de proyectos, la carpeta armeabi también se incluirá en el jar.

+0

Bueno, eso es exactamente lo que hice. Estoy usando una biblioteca de Android y tengo la intención de dar solo el jar creado automáticamente. sin embargo, aunque los archivos ".so" están dentro, me da esta excepción. Se produce cuando configuro la carpeta libs como una fuente en la ruta de compilación –

+0

. Después de hacer la carpeta libs como una carpeta fuente a través de la ruta de compilación, recibo un error diferente, esta vez en el tiempo de compilación: "La biblioteca 'Library.jar' contiene bibliotecas nativas que no se ejecutarán en el dispositivo." –

+0

no entiendo. dicen que es imposible, ¿no? –

Cuestiones relacionadas