Android ndk 8b No se puede cargar la biblioteca
Actualización a ndk 8b Recibo algún informe de fallo (la mayoría de ellos son Galaxy SII con Android 4.03)
java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1286]: 1836 cannot locate '__gnu_thumb1_case_uqi'... at java.lang.Runtime.loadLibrary(Runtime.java:370) at java.lang.System.loadLibrary(System.java:535) at com.iuculano.fplayer.SDLActivity.void onCreate(android.os.Bundle)(SourceFile:324) at android.app.Activity.performCreate(Activity.java:4465) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993) at android.app.ActivityThread.access$600(ActivityThread.java:127) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4507) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) at dalvik.system.NativeStart.main(Native Method)
La excepción es causada por un simple System.loadLibrary("main");
- Cómo crear un plugin stagefright
- Advertencia de ARM: swp {b} use está obsoleto para esta arquitectura
- Cómo compilar una biblioteca estática utilizando el Android NDK?
- Android NDK limitaciones?
- Carga de una biblioteca nativa para Android mediante Eclipse
Qué significa eso? cannot locate '__gnu_thumb1_case_uqi'
- Gradle Android Build System Problemas de NDK
- Cómo pasar correctamente un archivo FileDescriptor a FFmpeg usando JNI en Android
- Cómo enviar MAC marco de datos de difusión con Android AP
- FFMPEG sws_scale Crash en Android
- Excluir biblioteca nativa en la compilación Android de Gradle
- Android L | Libusb_init devuelve LIBUSB_ERROR_OTHER (-99)
- Orientación de la pantalla de Android NDK
- Integración de libsodium en android
El __gnu_thumb1_case_uqi
es un ayudante que hace un salto indexado en una tabla de conmutación densamente embalada; Implementa rápidamente el interruptor. Tiene dos opciones: evitarlo o vincularlo.
Si aumenta un nivel de optimización (utilizando -O3
) puede que no necesite este símbolo. Además, el cambio de la CPU puede ayudar, así como el uso de instrucciones thumb2
. La -ffreestanding
con la opción -ffreestanding
también puede evitar este símbolo. Si tiene control sobre la instrucción switch, puede reemplazarla por una matriz de punteros de función.
Esta rutina está dentro de libgcc . Puede enlazar estáticamente libgcc . En algún lugar del SDK / compilador de Android, debe haber un libgcc.a
. Enlace con libgcc.a
, utilizando -L
y -l
o use la opción -static-libgcc
linker para obtener el código (consulte http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html ).
Editar: Si no está compilando nada, puede encontrar libgcc.so
en su sistema. Puede ser en /lib
o /usr/lib
o tal vez un lugar extraño para los dispositivos Android. Agregar el directorio donde se ubica libgcc.so
a la variable de entorno LD_LIBRARY_PATH
también podría solucionar el problema. Tal vez lamentable que Samsung lanzó binarios incompatibles y no tienes manera de solucionar el problema si no está compilando su propio código. El correcto libgcc.so
tal vez dentro de algo como /usr/lib/thumb
para distribuciones multi-lib. No sé mucho acerca de las cosas de Davlik, pero la JVM de Android podría no apuntar al conjunto correcto de bibliotecas cuando se ejecuta.
¿Está compilando para armv7? Si no lo eres, intenta compilar para armv7.
¿Produce código NDK optimizado para múltiples arquitecturas?
Leer sobre 'brazo' vs 'pulgar' en la respuesta aceptada en el enlace anterior.
Entonces, quita tus instrucciones del config para construir para el pulgar y verifica que estás construyendo para el brazo …
O…
Ill hacer una suposición salvaje … es el orden de la biblioteca que tiene en la declaración de vinculador en su 'Android.mk'
Prueba el foro de google para ndk … buscando 'no se puede localizar el símbolo' …
¿Realmente desesperado?
Consulte la sección "Errores de tiempo de ejecución" aquí
- GetChildFragmentManager aumenta la excepción NoSuchMethod en el dispositivo 4.0.3 pero no en 4.2.2
- Proyecto de Android incapaz de hacer referencia a otro proyecto en eclipse