繁体   English   中英

在Linux C ++代码中从android中创建的.so文件调用函数

[英]Calling function from .so file created in android in linux C++ code

我有.so文件,我从apk中获取。 使用命令nm -D libnative-lib.so,我获得了功能列表。 我需要调用名为Java_com_example_nativelib_utils_Constants_getStringFromJNI函数。 我写了下面的代码:

#include <stddef.h>
#include <dlfcn.h>
#include <stdio.h>

int init_library() {
    void* hdl = dlopen("./libnative-lib.so", RTLD_LAZY);
    if(hdl == 0)
        return 0;
    else return 1;
}

int main() {
    printf("%s\n", (init_library() ? "OK": "ERROR"));
}

并制作文件:

all: exe

exe:    main.c
        gcc main.c -fPIC -ldl -o main

但是程序的结果始终是“ ERROR”。 我从x86和armeabi-v7a架构(其他不存在)中尝试了libnative-lib.so。 如何从中加载库并调用函数? C ++或C不在乎。

在非Android项目中无法使用android .so文件。 类似的问题在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM