Estoy tratando de compilar el códec vp8 para Android. Ejecuté la secuencia de comandos configure.sh y makefile para armv6 con sourcery g ++ que produjo exitosamente libvpx.so. Después de eso, escribí un contenedor JNI y lo compilé con ndk-build con éxito. Cuando ejecuto esto en un teléfono inteligente Gingerbread, recibí un UnsatisfiedLinkError "libpthread.so.0 no encontrado". ¿Cómo puedo deshacerme de este error?compilación vp8 en android
Respuesta
Esto a veces puede ser un problema con el SONAME en una biblioteca compartida, eche un vistazo a este artículo.
http://groups.google.com/group/android-ndk/browse_thread/thread/fd484da512650359
Se puede desactivar pthreads si no lo hace realmente los necesita.
Iv'e tuvo problemas con los archivos .so en el pasado y han evitado todos estos problemas mediante el uso de .a bibliotecas estáticas en lugar de .so bibliotecas compartidas
De http://git.chromium.org/gitweb/?p=webm/bindings.git;a=blob_plain;f=JNI/README.Android con algunos ajustes para facilitar la lectura.
Crear {proyecto}/jni carpeta.
Obtiene enlaces JNI.
Get libvpx.
Configurar libvpx para Android
./libvpx/configure --target = ARMv7-android-gcc --disable-ejemplos --sdk-path = {path to NDK}
--sdk-path
DEBE ser absoluta.Obtenga libwebm.
cd fijaciones/JNI
Get libogg.
Descargar código OGG a partir de http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz
Extraer para fijaciones/JNI.
Necesitamos ejecutar configure para generar config_types.h.
cd libogg-1.3.0 ./configure & & & & cd ..
Get libvorbis
Descargar el código de Vorbis http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
Extraer para fijaciones/JNI.
Get libyuv
svn checkout
Crear proyecto {} /jni/Application.mk http://libyuv.googlecode.com/svn/trunk/ única libyuv-lectura con los datos siguientes:
APP_ABI := armeabi-v7a APP_OPTIM := release APP_STL := gnustl_static APP_CPPFLAGS := -frtti
Crear {proyecto} /jni/Android.mk con los datos belo w:
WORKING_DIR := $(call my-dir) BINDINGS_DIR := $(WORKING_DIR)/bindings/JNI include $(BINDINGS_DIR)/Android.mk
Genere el código JNI.
{ruta a NDK}/NDK-construir
Copia el código java.
cp -R fijaciones/JNI/com/google ../src/com/
Añadir un código para probar los enlaces.
int[] major = new int[2]; int[] minor = new int[2]; int[] build = new int[2]; int[] revision = new int[2]; MkvMuxer.getVersion(major, minor, build, revision); String outStr = "libwebm:" + Integer.toString(major[0]) + "." + Integer.toString(minor[0]) + "." + Integer.toString(build[0]) + "." + Integer.toString(revision[0]); System.out.println(outStr);
Ejecuta la aplicación. Debería ver la salida de la versión libwebm.
Modifique según sea necesario. Los contenedores de VP8 se encuentran en el espacio de nombres com.google.libvpx.
- 1. webm/vp8 player for java
- 2. Cómo codificar series de imágenes en VP8 usando WebM VP8 Encoder API? (C/C++)
- 3. Error de compilación de Android
- 4. Compilación de Android ICS Problema
- 5. crtbegin_so.o faltante para android toolchain (compilación personalizada)
- 6. La compilación de Android con jmDNS falla
- 7. Errores de compilación de OpenCV/Android
- 8. ANT compilación para Android Proguard ofuscación
- 9. Integración o instrucciones de compilación para libjpeg-turbo en Android
- 10. Android incluyen .jar en la compilación de hormigas
- 11. Error: compilación de origen de Android en eclipse
- 12. Compilación de aplicaciones de Android en un teléfono real
- 13. Android 2.3 emulator pantalla en blanco después de la compilación
- 14. Android compilación desde la línea de comandos en Windows
- 15. Android excluye el archivo de compilación en eclipse
- 16. Android NDK: compilación WebView personalizada desde la fuente
- 17. Sustitución menú de aplicaciones del Android antes de la compilación
- 18. Configuraciones de compilación de Android para clientes múltiples
- 19. ¿Cómo tener diferentes entornos de compilación para Android?
- 20. Tiempos de compilación largos con sbt android-plugin
- 21. La compilación de Android es lenta (usando Eclipse)
- 22. ¿Es aubio de compilación cruzada para iPhone/Android/ARM?
- 23. Objetivo de compilación de Android, duplicados, que elegir?
- 24. Compilación condicional en Scala
- 25. compilación condicional en Go
- 26. compilación condicional en OCaml
- 27. Compilación condicional en Python
- 28. Usar constantes de compilación en eventos de compilación
- 29. Etiquetar una compilación en TeamCity desde otra compilación
- 30. Compilación de problemas en Clojure
¡respuesta fantástica! pero, cuando hago lo siguiente, siempre obtengo un error durante la configuración. No puede crear una instancia del compilador. Aquí está el registro: No es posible invocar el compilador: /Users/yosef/Desktop/adt/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --sysroot =/usuarios/Yosef/escritorio/adt/NDK/fuentes/android/libportable/arch-brazo -I/Usuarios/Yosef/escritorio/adt/NDK/fuentes/android/cpufeatures -mtune = cortex-A8 -O3 -fPIC - W .. ¿Sabes cuál podría ser la razón? – Nativ
los repos se han movido a otro lado. Actualice los enlaces de repositorio para obtener desde la nueva raíz - https://chromium.googlesource.com/ – Shrish