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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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账号...

(0)


相关推荐

  • Linux操作系统基础(完结)

    Linux操作系统基础(完结)一、Linux操作系统概述二、Linux操作系统安装三、Linux文件系统及文件基础四、Linux操作系统命令使用基础五、Linux应用程序的安装与卸载基础五、用户及进程六、相关信息查询七、网络配置八、Linux应用程序的安装与卸载基础九、vim

  • QTreeView中finditems查找子项

    QTreeView中finditems查找子项1、QListQStandardItemModel::findItems(constQString&text,Qt::MatchFlagsflags=Qt::MatchExactly,intcolumn=0)const不特殊指定第二个参数的情况下,此函数只会搜索TreeView的顶层元素,不会匹配子元素。第二个参数中加入“Qt::MatchContains|Q

  • 第一章:什么是数据化运营「建议收藏」

    第一章:什么是数据化运营「建议收藏」1.1现代营销理论的发展历程1.1.1从4P到4C(商品丰富、市场竞争日益激烈、消费者成为商业世界核心)4P(以产品为中心的营销)理论Product(产品):注重产品功能,强调独特卖点Pric

  • 用python的pandas打开csv文件_如何使用Pandas DataFrame打开CSV文件 – python[通俗易懂]

    用python的pandas打开csv文件_如何使用Pandas DataFrame打开CSV文件 – python[通俗易懂]有一个带有三列数据框的CSV格式文件。第三栏文字较长。当我尝试使用pandas.read_csv打开文件时,出现此错误消息message:UnicodeDecodeError:’utf-8’codeccan’tdecodebyte0xa1inposition0:invalidstartbyte.但是用打开文件没有问题withopen(‘file.csv’,’r’,…

  • Java html转word_html文件转换成excel

    Java html转word_html文件转换成excel使用aspose的原因:1.使用简单,功能强大2.可以自动将html中可以访问的img标签存入word文档中3.可以轻松实现HTML中的样式转换到word文档中首先使用的jar包是:aspose-words-14.9.0-jdk16.jar这个可以在网上找到激活成功教程版以下是代码:1:读取asposelicensepublicstaticbooleangetAsposeWordLice

    2022年10月10日
  • 成功解决TypeError: Cannot cast array data from dtype(‘float64’) to dtype(‘U32’) according to the rule ‘

    成功解决TypeError: Cannot cast array data from dtype(‘float64’) to dtype(‘U32’) according to the rule ‘成功解决TypeError:Cannotcastarraydatafromdtype(‘float64’)todtype(‘<U32’)accordingtotherule’目录解决问题解决思路解决方法解决问题TypeError:Cannotcastarraydatafromdtype(‘float64’)todtype(‘<U32’)accordingtotherule’safe’…

发表回复

您的电子邮箱地址不会被公开。

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