遇到的问题如下:
在javah -jni命令的时候会出现找不到类的错误。
这个时候需要加入 javah -jni classpath参数就可以了.
具体的可以参考连接点击打开链接
还有一个:
LOGD 找不到的问题,这个需要在android.mk下添加
#include <android/log.h> #define LOG_TAG "System.out.c" #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)是必须添加的,告诉编译器这里需要输出LOG,LOG的TAG标记是“System.out.c”,并且预定义LOGD(...)代表Debug输出,LOGI(...)代表Info输出。然后在C语言主题代码中就可以使用LOGD和LOGI了,传递字符串就可以了,需要注意的是传递的字符串要用英文字符,不支持中文。
3,在Android.mk文件中配置LOG输出
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := Hello LOCAL_SRC_FILES := Hello.c LOCAL_LDLIBS += -llog include $(BUILD_SHARED_LIBRARY)注意:就一句 LOCAL_LDLIBS += -llog 就行了,但是必须得加在 include $(BUILD_SHARED_LIBRARY) 之前。
4,重新编译代码,运行看看效果
LOCAL_LDLIBS+= -llog 就可以了
下边的连接是代码:
生成so也可以用命令:
进入到jni 目录下然后执行: ndk-build既可以了