ubuntu下整合eclipse和javah生成jni头文件开发android的native程序(转)
本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的javah命令,第二种为整合javah到eclipse里面。推荐第二种方式,方便快捷,随时修改随时生成
0:前提和条件:
1:ubuntu64位系统
2:android-ndk-r8e已经安装好,并且配置到eclipse里面
3:android-sdk-linux已经安装好,并且配置到eclipse里面
1:第一种命令行模式
1:如图,我的项目结构是这样,我的
如图,采用eclipse自动生成的jni文件夹中,可以看到Android.mk和hello.cpp,此时hello.cpp中什么都没有,下面我们利用终端命令进入到项目文件夹,然后进入到bin/classes文件夹(之所以不在项目目录下而进入到bin/classes文件夹部分原因是因为在这里面可以很方便的用tab键敲出类名,不至于出错),结构如图:
利用tab键敲出这个,然后再去掉后面的class和替换/为.走起
其中-d为生成的目录文件夹,替换为下图,然后回车
可以进入jni文件夹看到生成了.h头文件
查看文件为
- /* DO NOT EDIT THIS FILE - it is machine generated */
- #include <jni.h>
- /* Header for class com_hello_word_HellowordActivity */
- #ifndef _Included_com_hello_word_HellowordActivity
- #define _Included_com_hello_word_HellowordActivity
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * Class: com_hello_word_HellowordActivity
- * Method: sayHello
- * Signature: ()Ljava/lang/String;
- */
- JNIEXPORT jstring JNICALL Java_com_hello_word_HellowordActivity_sayHello
- (JNIEnv *, jobject);
- #ifdef __cplusplus
- }
- #endif
- #endif
生成的头文件是正确的
2:第二种方式:整合ecipse和javah命令
1:如图所示:在点击鼠标位置的下拉三角,在ubuntu下截图,在图上画很费劲,选择第二项externel tools configurations
2:出现对话框,然后几点说明:
1:name写javah就行了
2:Location为你的javah所在目录
3:Working Directory如图填写就行
4:Arguments如图填写
最后apply就行,
然后鼠标放在那个HellowordActiviry.java上面,注意不是项目上
然后点击刚才那个按钮
,点这个绿色的,不是右面的三角,然后你就会看到jni目录下出现了头文件,
同样也是正确的代码
- /* DO NOT EDIT THIS FILE - it is machine generated */
- #include <jni.h>
- /* Header for class com_hello_word_HellowordActivity */
- #ifndef _Included_com_hello_word_HellowordActivity
- #define _Included_com_hello_word_HellowordActivity
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * Class: com_hello_word_HellowordActivity
- * Method: sayHello
- * Signature: ()Ljava/lang/String;
- */
- JNIEXPORT jstring JNICALL Java_com_hello_word_HellowordActivity_sayHello
- (JNIEnv *, jobject);
- #ifdef __cplusplus
- }
- #endif
- #endif
转自:http://blog.csdn.net/jiuyueguang/article/details/9404237
ubuntu下整合eclipse和javah生成jni头文件开发android的native程序(转)的更多相关文章
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
0:前言: 这两天一直在研究用android的jni调用第三方库,上网搜方法,但是都是泛泛而谈,没有demo,经过我几番折磨,写了n多的helloword工程,总是不成功,工程名字也就由helloow ...
- [转]ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
转载自:http://blog.csdn.net/jiuyueguang/article/details/9404237 本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的jav ...
- javah生成jni头文件时报错 Error: cannot access android.support...
javah生成jni头文件时报错: Error: cannot access android.support.v7.app.AppCompatActivity class file for andro ...
- 使用javah生成jni 头文件和使用ndk编译so库
1.jni 首先clean Project,在makeProject生成对应的class文件 然后点出命名框,输入命令: cd app/build/intermediates/classes/debu ...
- android Javah生成JNI头文件
项目要用到c语言库,因此来学习下jni 首先是在cmd中使用javah,出现了javah不是内部或外部命令的错误提示,javah是jdk自带的工具,提示说明在系统环境变量中没有jdk的路径,或者配置错 ...
- Javah生成JNI头文件
首先确保java的环境变量配置好了. 1:打开cmd 进入doc命令窗口: 进入class所在目录,我的class是在F:\summerVacation\ndkhelloworld\bin\class ...
- 转载: Javah生成JNI头文件出现找不到类的错误
错误: 找不到 'com.chnic.jni.SayHellotoCPP' 的类文件. 上图可以看到错误和解决办法. 不要忘记那个点 javah -classpath . -jni com.chnic ...
- Java 生成 JNI 头文件
[参考文章]:javah javac 命令行生成native的方法教程 [参考文章]:用javah 导出类的头文件, 常见的错误及正确的使用方法 项目需要调用 C++动态库,由于项目包结构发生变化,需 ...
- Android NDK入门实例 计算斐波那契数列一生成jni头文件
最近要用到Android NDK,调用本地代码.就学了下Android NDK,顺便与大家分享.下面以一个具体的实例计算斐波那契数列,说明如何利用Android NDK,调用本地代码.以及比较本地代码 ...
随机推荐
- bccomp比较大小注意
2015年12月15日 14:18:56 星期二 echo bccomp('1', '1.01', 2); // -1 echo bccomp('1', '1.01', 3); // -1 echo ...
- 【编程题目】设计包含 min 函数的栈
2.设计包含 min 函数的栈(栈)定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素.要求函数 min.push 以及 pop 的时间复杂度都是 O(1). 我的思路: 用一个额外的 ...
- PHP工厂模式的研究
工厂方法模式 把 创造者类 和要生产的 产品类 分离.创建者是一个工厂类,其定义了产品生产的类方法.一般情况下,创建者类的每个子类实例化一个相应的产品子类. 下面是单个产品的实现代码: <?ph ...
- 获取driver网络路径名称
'get the web path of the drive s: Dim MM As New Management.ManagementObject(String.Format("win3 ...
- jquery阻止事件冒泡的3种方式
第一种:return false, 缺点:直接返回了函数,函数后面的语句没法执行了: $('.btn').on('click',function(event){ do something ... re ...
- 解决ERROR 2003 (HY000): Can't connect to MySQL server on
方案一: .打开cmd; .输入命令:net stop +MySQL的服务名,停止MySQL服务,如果未启动MySQL服务则可跳过该步骤: .输入命令:mysqld --remove卸载MySQL服务 ...
- (转)Ehcache 整合Spring 使用页面、对象缓存
Ehcache在很多项目中都出现过,用法也比较简单.一般的加些配置就可以了,而且Ehcache可以对页面.对象.数据进行缓存,同时支持集群/分布式缓存.如果整合Spring.Hibernate也非常的 ...
- 困难的串(dfs)
困难的串 题意: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”.例如, BB.ABCDABCD都是容易的串,而D.DC.ABDAD ...
- Android -- Looper、Handler、MessageQueue等类之间关系的序列图
原文:Android源码解析之(二)-->异步消息机制 通过阅读文章及其中提到的一些参考文章,模模糊糊的理解了Android的异步消息机制.为了能够进行消化吸收,决定把各类之间的交互通过图的形式 ...
- SQL学习笔记----更改SQL默认的端口号
1.SQLServer配置管理器----SQLServer网络配置----MSSQLSERVER的协议---TCP/IP(已启用)---IP地址 清空素有的IP,在IPALL下更改默认的端口: 2. ...