大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
Eclipse生成so文件:
1.首先需要eclipse,jdk能正常开发
2.点Window->Preferences->Android->NDK,设置NDK路径(先要下载。如:E:\android-ndk-r9c)
3.在工程上右键点击Android Tools->Add Native Support…,然后给我们的.so文件取个名字,
例如:myndk(myndk.so)
这时候工程就会多一个jni的文件夹,jni下有Android.mk和my-ndk.cpp文件。
Android.mk是NDK工程的Makefile,myndk.cpp就是NDK的源文件
4.建议单独写一个类文件来加载动态库。
如:
public class Load {
static {
System.loadLibrary(“NDKTest”);//加载so
}
public native int addInt(int a, int b); //调用方法
}
5.现在就可以去写myndk.cpp的代码了。
#include <jni.h>
#include “com_example_ndktest_Load.h”
//JNI接口的命名规范是:Java_ + 调用该方法的包名(包名的点用_代替) + _ + 调用该接口的类名 + _ + 方法名,对于实例方法,
//有两个参数是必要的,一个JNI的环境指针JNIEnv *,另一个是调用该方法的Java实例jobject
JNIEXPORT jint JNICALL Java_com_example_ndktest_Load_addInt (JNIEnv *, jobject, jint a, jint b) {
return a + b;
}
6.注意事项
1.编译头文件
(1) cmd进入文件目录,一般到src目录就可以了
(2) 调用:javah -classpath . -jni 包名.类名。(如:javah -classpath . -jni com.buaa.testjni.TestJNI)
(这时编译成功的话在jni文件夹下就有.h文件了)
2.编译也许会遇到Unable to launch cygpath. Is Cygwin on the path?错误,解决办法如下:
工程右键,点Properties->C/C++ Build的Building Settings中去掉Use default build command,然后输入${NDKROOT}/ndk-build.cmd
3.cmd进入到项目目录下(可以是src输入:ndk-build 就可以得到so文件(前提是配置好了NDK)
在C/C++ Build中点击Environment,点Add…添加环境变量NDKROOT,值为NDK的根目录(如:E:\android-ndk-r9c)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192725.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...