Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否可以执行由Anroid JNI生成的so文件?_Android_C_Java Native Interface_Shared Libraries - Fatal编程技术网

Android 是否可以执行由Anroid JNI生成的so文件?

Android 是否可以执行由Anroid JNI生成的so文件?,android,c,java-native-interface,shared-libraries,Android,C,Java Native Interface,Shared Libraries,我从安卓aar软件包中得到了一个.so文件,其中包含x86,x86\u 64,armv7等 我可以调用.so文件中的函数吗 我所经历的 创建了一个main.c #include <stdio.h> int main() { printf("Hello World!\n"); printf("%d", Java_com_scaf_android_client_CodecUtils_stringFromJNI())

我从安卓aar软件包中得到了一个
.so
文件,其中包含
x86
x86\u 64
armv7

我可以调用
.so
文件中的函数吗

我所经历的

创建了一个main.c

#include <stdio.h>
int main() {
        printf("Hello World!\n");
        printf("%d", Java_com_scaf_android_client_CodecUtils_stringFromJNI());
        return 0;
}


您没有使用正确的参数调用该方法,因此即使它进行了链接,也无法工作。JNI方法至少需要一个JVM上下文。如果您知道这个方法的Java声明是什么,那么可以将它映射到JNI版本。看一看如何实例化JVM以进行JNI调用的问题:您没有使用正确的参数调用该方法,因此即使它进行了链接,它也不会工作。JNI方法至少需要一个JVM上下文。如果您知道这个方法的Java声明是什么,那么可以将它映射到JNI版本。看看这个问题,了解如何实例化JVM以进行JNI调用:
main.c:4:15: warning: implicit declaration of function ‘Java_com_scaf_android_client_CodecUtils_stringFromJNI’ [-Wimplicit-function-declaration]
  printf("%d", Java_com_scaf_android_client_CodecUtils_stringFromJNI());
               ^
/tmp/cc9vP9rb.o: In function `main':
main.c:(.text+0x14): undefined reference to `Java_com_scaf_android_client_CodecUtils_stringFromJNI'
collect2: error: ld returned 1 exit status