Aplicación para Android con 2 librerías con jniLibs – bloquea la aplicación
En mi aplicación Android, uso dos bibliotecas que cada uno tiene su propio jniLibs.
biblioteca 1 – https://github.com/tekinarslan/AndroidPdfViewer
- Cómo utilizar correctamente NDK-Build en Android Studio 2.2 Vista previa 1
- Uso de minizip con android ndk
- Cómo vincular cualquier biblioteca en la aplicación ndk
- ¿Hay algún recurso bueno que discuta Android NDK API de una manera algo decente?
- Javah: Error: no se puede acceder a android.support.v7.app.ActionBarActivity
biblioteca 2 – reproductor de vídeo personalizado sdk
La aplicación compilará y creará bien.
ambas bibliotecas tienen los jniLibs en el lugar correcto.
Parece que sólo funcionará una biblioteca, en este caso el pdfView. Se llama a la biblioteca 2. se rompe y el registro dice que no puede cargar los jniLibs para ello.
¿Alguien lo ha encontrado? Gracias
Actualizar código después de comentarios chaeyoungx:
App Build.gradle:
android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.my.app" minSdkVersion 17 targetSdkVersion 22 versionCode 14 versionName "1.0" ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "mips" } } ....
He intentado este código siguiente en ambos archivos: gradle.properties (Project y Global)
android.useDeprecatedNdk=true
Todavía tiene el mismo ploblema.
- ¿Cómo puedo manejar las llamadas a AudioTrack de jni sin estrellarse?
- No se pueden cargar archivos de biblioteca .so al hacer una aplicación de sistema
- Cómo eliminar soporte nativo de un proyecto de Android en eclipse porque eclipse está mostrando errores en jni?
- Firma digital de una biblioteca compartida en Android
- Puente nativo entre Python y Dalvik o AAF
- SQLite con Android NDK
- Accede al GPS en Android desde C ++
- Falta de correspondencia entre la firma del método y la llamada real
Asegúrese de que tiene sus bibliotecas construidas para cada abi. Mira tu archivo apk final. En la librería de carpetas encontrará carpetas con libs para cada abi. Debe haber las mismas bibliotecas en cada uno. En caso de que no tenga suficiente:
- construye tus bibliotecas para otros abis
-
excluir estas carpetas, es decir,
armeabi lib1.so lib2.so lib3.so armeabi-v7a lib1.so lib2.so lib3.so arm64-v8a lib1.so
En esta situación, el dispositivo arm64 irá a la carpeta arm64-v8a e intentará encontrar lib2, lib3, y no los encontrará. Así que excluir la carpeta arm64-v8a en el archivo gradle de la aplicación java, por lo que el dispositivo arm64 podría usar la carpeta armeabi.
También intenté importar 2 bibliotecas para mi aplicación y tuve el mismo error.
He encontrado la solución en la red y aquí es cómo solucioné el problema:
-
vaya a gradle.properties y añada android.useDeprecatedNdk = true
-
a continuación, abra build.gradle que se encuentra en la carpeta de la aplicación y, a continuación,
ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" }
dentro de defaultconfig {
Después de esto acabo de limpiar y reconstruir el proyecto y trabajé sin errores.
Espero que esto funcione para ti.
- Abra el reino con una nueva configuración real
- borrar mi propia aplicación por defecto programaticamente