本文是最基本的配置介绍。可以使用。没有其他说明。
java 代码
static {
System.loadLibrary("maincpp-lib");
}
public native void init(String objPath);
public native void resize(int width, int height);
jni代码
#include <jni.h>
#include <string>
#include <android/log.h>
extern "C"
JNIEXPORT void JNICALL
Java_com_yang_testapp_jiege_nativefile_GLESNative_resize(JNIEnv *env, jobject instance, jint width,
jint height) {
rendererES2->resize(width, height);
// TODO
}
gradle说明
设置ndk的路径。在local.properties中设置
gradle文件声明 ndk的配置
defaultConfig {
ndk {
// 声明生成的so库的名字
moduleName 'maincpp-lib' //需要跟java中的名字对应
abiFilters 'armeabi-v7a' // 编译的规则和适应的平台
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jni']
}
}
// 在app文件下的externalNativeBuild文件中的设置cmake的声明
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions"
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips', 'mips64'
}
}
}
externalNativeBuild {
cmake {
path 'CMakeLists.txt'
}
}
cMake 说明
cmake_minimum_required(VERSION 3.4.1)
add_library(
maincpp-lib
SHARED
src/main/jni/maincpp-lib.cpp
src/main/jni/RenderGLes.cpp
src/main/jni/Obj3Ddata.cpp)
target_link_libraries(
maincpp-lib
# native_app_glue
EGL
GLESv2
log)
网友评论