如何在Android NDK中的C ++类中调用.SO函数

时间:2015-08-11 05:50:06

标签: java android android-ndk java-native-interface

如何从C类调用函数&该类在prebuild .so文件中进入新项目的C类。例如,我有一个项目-1 创建一个prebuild .so文件。现在在这个项目中我有一个名为" androidNdk"的C类。 在这个类中,我只有一个返回整数值的函数。

int myFunction()
{
    int number = 10;
    return number;
}

我创建一个新项目并加载此.so文件并在C类中调用myfunction()。像这样 这是一个名为" newAndroidNdk"。

的新类
void newFunction()
{
    int str = myFunction();

    printf("%s", str);  
}

问题是当我使用ndk-build命令编译这个项目时,它会给我这个错误 "对myfunction的未定义引用"。

这是jni中的Android.mk - > lib文件夹

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := libndkfunction-prebuilt
LOCAL_SRC_FILES := libndkfunction.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

这是新项目Android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Here we give our module name and source file(s)
LOCAL_MODULE    := ndkfun
LOCAL_SRC_FILES := ndkfun.c

LOCAL_SHARED_LIBRARIES := libndkfunction-prebuilt        
 LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/jni/include                
include $(BUILD_SHARED_LIBRAR

帮我解决这个问题

0 个答案:

没有答案