Clion compila jni, pero la solución no puede encontrar jni.h
La biblioteca dinámica generada en el entorno de Windows es dll
La biblioteca dinámica generada en Linux es so
La biblioteca dinámica generada en Mac es dylib
Entonces, para los desarrolladores de Android, aún necesitan usar las herramientas ndk
Simplemente pegue el archivo .h generado en idea en el proyecto clion.
Si no puede encontrarlo it Para jni.h, puede agregar una referencia al archivo jni.h en CMakeList.txt
de la siguiente manera:
Las siguientes tres líneas se completan de acuerdo con la ubicación real de jdk, que se utiliza para importar archivos de encabezado relacionados con jni, otros sistemas operativos pueden no ser completamente consistentes
Copie el archivo de encabezado .h com_shenby_jni_JniExample.h
e implemente la función com_shenby_jni_JniExample .c
definido en este archivo Agregue y genere una biblioteca compartida dinámica en CMakeList.txt
add_library: genere una biblioteca, add_executable: genere un archivo ejecutable
> hola: es el nombre de la biblioteca compartida generada, el prefijo lib se agregará automáticamente al frente. Por ejemplo, aquí Windows genera libhello.dll
COMPARTIDO: el tipo de biblioteca es dinámica y .dll. se genera en Windows, mientras que STATIC genera una biblioteca estática, que es generada por Windows
com_shenby_jni_JniExample.c: c archivo fuente, se agregan varios archivos al final. Recuerde no agregar el com_shenby_jni_JniExample anterior. .h
; de lo contrario, la función en la biblioteca generada está vacía
El resultado es el siguiente
Puede pegar el archivo dll en el directorio raíz del proyecto de idea y ejecutarla