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

eclipse生成SO文件「建议收藏」利用eclipse进行NDK开发(生成SO文件)开发步骤


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)

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • VS无法打开源文件及无法打开链接库文件的解决方法

    VS无法打开源文件及无法打开链接库文件的解决方法一、无法打开源文件依次点击“项目——配置属性——C/C++——常规”,在“附加包含目录”中加入.h文件所在的文件夹路径二、无法打开文件“XXX.lib”1、依次点击“项目——配置属性——链接器——常规”,在“附加库目录”中加入.lib所在的文件夹的路径 2、在“链接器”中找到“输入”,在“附加依赖项”中加入需要加入的xxx.lib;(要用;和其他链接库分

    2022年6月22日
  • Python爬虫程序实例

    Python爬虫程序实例在这个爬虫程序中使用到“BeautifulSoup”与“requests”两个包,所以我们之前要安装这两个包,如果不清楚是否安装,可以使“piplist”查看是否已经安装。做“爬虫程序”时建议用谷歌浏览器对网页元素进行检查,在网页空白处右击鼠标在弹出菜单中,使用“检查”菜单项。在检查元素窗口中,在“Elements”窗口仔细查看网页元素,特别要观察所要截取的内容前后HTML元素的特征。在上述代码中:主要抓取中的元素,这里看到它们的class元素的名称都是“news_li_strong”,所以在代

    2022年6月17日
  • GridLayout在API21之前的兼容

    GridLayout在API21之前的兼容问题:GridLayout在API21时引入了android:layout_columnWeight和android:layout_rowWeight来解决平分问题,但是api21前怎么办呢?解决:1.引入兼容包:compile’com.android.support:gridlayout-v7:23.0.0’2.为GridLayout设置权重:app:layout_column…

    2022年6月3日
  • mysql获取最近一条数据_mysql显示所有数据库

    mysql获取最近一条数据_mysql显示所有数据库关于mysql查询最近一条记录最近项目中遇到需要查询记录当前时间最近的一条记录的问题,开始感觉无从下手,后来逐步发现了三种解决方案。下策——查询出结果后将时间排序后取第一条select*fromawheretime<=”2017-03-2919:30:36″orderbytimedesclimit1这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于…

    2022年9月7日
  • 永恒之蓝勒索病毒_2019勒索病毒专杀

    永恒之蓝勒索病毒_2019勒索病毒专杀整个的复现的过程需要的环境以及工具有:kali2.0:用来监听获取反弹的shell。ip:192.168.15.174winsever2003:需要装上python环境,勒索病毒攻击机。ip:192.168.15.141win2007:靶机,确保445端口开启。ip:192.168.15.144永恒之蓝python2.6已经在winsever下装python需…

    2022年10月16日
  • vlc 字幕中文乱码解决方法_字幕乱码符号

    vlc 字幕中文乱码解决方法_字幕乱码符号vlc中文字幕乱码的解决方案

    2022年10月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号