我需要为示例ARM
项目生成CPP
结构共享库。
示例项目包含:
现在,我想为不同的Android项目创建一个共享库。我尝试使用[Android-Cmake][1]
进行编译,但它生成X86
架构库而不是ARM。
如果有其他方法,请告诉我。我也可以在Android平台上为所有版本运行X86
吗?
这是我的Android.mk:
LOCAL_PATH := $(call my-dir)/../ //Path is according JNI Folder
SRC_TOP_DIR := $(LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := smileParse
LOCAL_CFLAGS := -DANDROID
LOCAL_SRC_FILES := main.cpp test.cpp smamain.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include $(LOCAL_PATH)/
答案 0 :(得分:2)
在项目中创建一个名为JNI的文件夹:
在JNI文件夹中创建或编辑Android.mk,设置包含和库路径,
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := some.cpp
include $(BUILD_SHARED_LIBRARY)
声明一个java包装类,声明一个本机函数:
public class JWrapperSomeClass {
public native void Demo(int para);
}
使用 javah 命令为C ++方法包装器生成函数签名:
javah -jni -classpath bin/classes/ -d jni com.example.Your.Package.Class
用C ++编辑代码
转到项目文件夹,运行命令:
$ANDROID_NDK/ndk-build
其中$ ANDROID_NDK是安装android NDK的文件夹
这就是它。有关更多详细信息,您可能会阅读NDK或JNI文档。