Android Studio 编译C++/C文件,生成so文件
一、Android studio的NDK下载:
二. 创建Android 工程
三.创建NativeJNI.java文件
该文件和MainActivity.java在同一路径·
public class NativeJNI {
static {
System.loadLibrary("main");
}
public static native String helloJNI();
}
四.通过Build----->Make Project生成class文件:
五.Terminal输入命令行生成.h文件
1.执行命令javah -d jni -classpath E:\AndroidProjectTest\NdkDemo\app\build\intermediates\javac\debug\com
pileDebugJavaWithJavac\classes com.ndkdemo.NativeJNI
没有报错就是执行成功。
2.执行成功后在上图目录中会生成com_ndkdemo_NativeJNI.h文件。
将该目录和文件拷贝到main目录下,如下图:
3.将com_ndkdemo_NativeJNI.h重命名为main.c,并编写main.c中的代码,实现native方法:
JNIEXPORT jstring JNICALL Java_com_ndkdemo_NativeJNI_helloJNI
(JNIEnv *env, jclass thiz)
{
return (*env)->NewStringUTF(env, "Hello Main!");
}
4、再执行Build------>Make Project
六.配置工程信息
6.1 build.gradle
添加如下图红色部分配置:
6.2. CMakeLists.txt
#将自己生成的C++文件添加进来
add_library(
main
SHARED
src/main/jni/main.c)
6.3 gradle.properties
七. Build—>ReBuild工程后,则可以生成NativeJNI的so文件
八.错误信息
rebuild报上图的错,是因为ndk版本太新,换个旧版本就ok了。如下图: