0
我在jni文件夹中添加了一个简单的头文件和c文件。在NDK项目中添加另一个C源代码和头文件
-jni
-calculate.c
-calculate.h
-HelloJNI.cpp
-Android.MK
这是代码。 a。 calculate.h
int add(int x, int y);
int minus(int x, int y);
b。 calculate.c
#include "calculate.h"
/**
* Implementation add
*/
int add(int x, int y){
return x + y;
}
/**
* Implementation minus
*/
int minus(int x, int y){
return x - y;
}
c.HelloJNI.cpp
#include <jni.h>
#include <android/log.h>
#include <string.h>
#include "calculate.h"
extern "C" {
JNIEXPORT jstring JNICALL Java_com_farissyariati_hellojni_MainActivity_stringFromJni(JNIEnv *env, jobject obj);
};
JNIEXPORT jstring JNICALL Java_com_farissyariati_hellojni_MainActivity_stringFromJni(JNIEnv *env, jobject obj){
//Calculate *myCalculate = new Calculate();
//int result = myCalculate->add(10,20);
int res = add(10, 20);
return env->NewStringUTF("Hello From CPP");
}
之前添加以下代码: INT解析度=添加(10,20);
应用程序按预期运行。假设,我必须在Android.mk中添加一些东西,我应该添加什么?这里是我的Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloJNI
LOCAL_SRC_FILES := HelloJNI.cpp
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
include $(BUILD_SHARED_LIBRARY)
UPDATE。
我改变我的这个Android.mk,但仍然无法正常工作。
LOCAL_PATH := $(call my-dir)
MY_SRC_FILE = /Users/farissyariati/Documents/EclipseProjects/HelloJNI/jni
include $(CLEAR_VARS)
LOCAL_MODULE := HelloJNI
LOCAL_SRC_FILES := HelloJNI.cpp
LOCAL_C_INCLUDES := $(MY_SRC_FILE)/calculate/
LOCAL_SRC_FILES += $(MY_SRC_FILE)/calculate/calculate.c
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
include $(BUILD_SHARED_LIBRARY)
感谢它的工作! – farissyariati 2015-04-07 03:04:42