Ndk-build no logra construir la biblioteca de audio Superpowered después de la reciente actualización de NDK
UPDATE 19 de marzo 2016: Superpowered ha lanzado nuevos binarios que funcionan correctamente con NDK r11
Estoy tratando de construir Superpowered biblioteca CrossExample proyecto de muestra en Android Studio. Hasta reciente actualización de NDK funcionó como encanto, pero ahora la ejecución de ndk-build da un error:
- No hay definiciones para los dispositivos Kindle Fire disponibles en Android SDK Manager
- Cómo ejecutar "android.bat sdk" en la ventana 7
- Android SDK manager, sólo muestra el paquete instalado
- ADT Plugin desapareció en Eclipse
- Cambiar la ubicación del SDK en Android Studio: espacios en blanco en la ubicación del directorio
Error:error: undefined reference to '__page_size'
Intenté construir con toolchains diferentes, eliminando / añadiendo varias banderas de la estructura sin la suerte hasta ahora.
En un proyecto diferente que utiliza Superpowered SDK y prácticamente la misma config obtengo algunos otros detalles de error. Parte del registro de mensajes de salida:
/android/ndk/platforms/android-9/arch-x86/usr/include/unistd.h:173: error: undefined reference to '__page_size' /android/ndk/platforms/android-9/arch-x86/usr/include/unistd.h:173: error: undefined reference to '__page_size' clang++: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [/Users/user_name/StudioProjects/project_name/app/src/main/jniSuperpowered/obj/local/x86/libNativeLibName.so] Error 1 make: *** Waiting for unfinished jobs.... /Volumes/iMect/iphone/SuperpoweredSource/decoder/SuperpoweredDecoder.cpp:120: error: undefined reference to '__page_size' /Volumes/iMect/iphone/SuperpoweredSource/decoder/hlsreader.cpp:582: error: undefined reference to '__page_size' clang++: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [/Users/user_name/StudioProjects/project_name/app/src/main/jniSuperpowered/obj/local/armeabi-v7a/libNightcorizerSuperpowered.so] Error 1 FAILURE: Build failed with an exception.
Lo que no parece correcto es la referencia indefinida a __page_size en unistd.h. Sin embargo tengo muy poca idea de solución de problemas más.
Gracias por adelantado para cualquier ayuda / sugerencias!
- Error al actualizar sdk
- Falta el directorio de plataforma-tools \ aapt.exe en android SDK
- R.java no se genera y los archivos AIDL no se compilan en Android SDK 2.3
- Android Marshmallow 6.0.1 Análisis Bluetooth Devuelto Sin Resultados
- Configuración de JAVA_HOME en SDK de Android
- Android Facebook SDK autorizar métodos muestra el diálogo cada vez
- ¿Hay alguna forma de instalar sólo ADB sin SDK completo?
- Android SDK no se puede instalar
Los cambios realizados en este compromiso NDK parecen explicar el problema que está viendo. De acuerdo con la descripción del commit, __page_size
fue reemplazado por PAGE_SIZE
para los niveles de la API de Android 12 y bajo. Como está utilizando el nivel 9 de la API y el código que hace referencia directamente a __page_size
, está viendo un efecto de este cambio.
Sin embargo, parece que la firma de método para int getpagesize()
no ha cambiado en las versiones de NDK o en los niveles de API, por lo que debería ser capaz de resolver este error reemplazando el uso de __page_size
por getpagesize()
en las siguientes ubicaciones:
SuperpoweredSource / decoder / SuperpoweredDecoder.cpp: 120 SuperpoweredSource / decoder / hlsreader.cpp: 582
Actualización: Para arreglarlo sin modificar el código fuente Superpowered, tendría que definir el símbolo __page_size
. Para hacer eso, usted podría construir una pequeña biblioteca ficticia que sólo contiene
#include <unistd.h> extern unsigned int __page_size = getpagesize();
A continuación, agregue un módulo para esta biblioteca a su Android.mk (o su build.gradle si está utilizando el nuevo sistema experimental) y haga que el módulo para Superpowered dependa del módulo ficticio.
O bien, podría presentar un informe de error con Superpowered.
Por lo tanto, como una solución para la situación revertida NDK a r10e que funcionó. Lo utilizará hasta que la biblioteca Superpowered obtenga una corrección. Muchas gracias a @bullsy
- ¿Hay alguna manera de reiniciar un servicio después de actualizar la aplicación en Android?
- ¿Cómo se cambia el texto 'Hecho' en un CAB?