¿Cómo importo una biblioteca nativa (archivo .so) en Eclipse?

Descargué el código fuente de Android PDF Viewer e bash comstackrlo en Eclipse. En lugar de meterme con Cygwin y recomstackr las librerías nativas de C, mi amigo me dijo que podía extraer los archivos .so precomstackdos del APK aquí:

http://code.google.com/p/apv/downloads/detail?name=apv-0.3.1dev13.apk&can=2&q=

¿Cómo exactamente importo estos archivos libpdfview2.so en el proyecto Eclipse?

Actualizado: Eclipse da el siguiente error y no se ejecutará:

Archive for required library: ‘lib / armeabi / libpdfview2.so’ en el proyecto ‘APV’ no se puede leer o no es un archivo ZIP válido

Vea cómo configuraron las cosas en el proyecto de muestra: http://code.google.com/p/apv/source/browse/#hg%2Fpdfview

Este tutorial de NDK también puede ser útil en términos de ayudarlo a descubrir cómo funcionan las cosas con NDK: http://mobile.tutsplus.com/tutorials/android/ndk-tutorial/

Lo básico es esto:

  1. Los archivos de la biblioteca .so suelen ir en la subcarpeta dir_proyecto / libs. Además, generalmente se encuentran en subcarpetas adicionales que describen su architecture (por ejemplo, project_root_dir / libs / armeabi / libpdfview2.so).

  2. Para usar la biblioteca en una actividad, agregue un cargador de biblioteca estática a la actividad como se muestra a continuación:

    estático
    {
    System.loadLibrary (“pdfview2”); // Aviso falta de prefijo lib
    }

  3. A continuación, define las funciones nativas que está importando. Puede reconocer estas funciones gracias a la palabra clave native. Busque en el archivo a continuación para ver qué funciones importan en la muestra:

http://code.google.com/p/apv/source/browse/pdfview/src/cx/hell/android/pdfview/PDF.java?r=560343d2dad904c5c925b6cadf97b90430fd25f4

Aquí hay unos ejemplos:

private native int parseBytes(byte[] bytes); private native int parseFile(String fileName); private native int parseFileDescriptor(FileDescriptor fd); 

Como mencionamos, otro subproceso de Stack Overflow sobre este tema desactivando “Actualizar automáticamente la carpeta Recursos y Activos en la comstackción” y “Forzar error cuando los archivos jar externos contienen bibliotecas nativas” en Ayuda de Windows / Preferencias / Android. Al menos me ayudó en mi caso!

Y no se olvide de poner el archivo so en ‘lib s / armeabi’ para tenerlo disponible en tiempo de ejecución.

Espero que esto haya ayudado a otros, también si era demasiado tarde para Li_W.