前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >eclipse生成SO文件「建议收藏」

eclipse生成SO文件「建议收藏」

作者头像
全栈程序员站长
发布2022-09-30 16:53:05
9780
发布2022-09-30 16:53:05
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。 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)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192725.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月16日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档