android jni java调用c_Android与JNI(一) ---- Java调用C 静态调用
第一、通过eclipse新建一个工程名为HelloJni的android工程,并编译。
第二、右键工程-->Android Tools --> Add Native Support,出现如下界面,名字默认就可以了,点击finish。
第三、我们在MainActivity类中加入要调用的native代码
public native String stringFromJNI();
以及加入我们要调用的lib库,名字就是上面图中的名字了。
static{
System.loadLibrary("HelloJni");
}
第四、用eclipse编译工程,使其在工程bin/classes目录下生成class文件
然后在工程根目录的src执行
javah -d ../jni com.example.hellojni.MainActivity
其中-d 表示生产目录,这时候jni目录会生产com_example_hellojni_MainActivity.h头文件。
在jni目录下创建com_example_hellojni_MainActivity.c文件,并实现stringFromJNI方法
#include
#include
#include "com_example_hellojni_MainActivity.h"
/* This is a trivial JNI example where we use a native method
* to return a new VM String. See the corresponding Java source
* file located at:
*
* src/com/example/hellojni/MainActivity.java
*/
jstring Java_com_example_hellojni_MainActivity_stringFromJNI(JNIEnv *env, jobject this)
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
将com_example_hellojni_MainActivity.c添加到jni的Android.mk中,同时删除HelloJni.cpp文件
最后我们添加Toast来显示stringFromJNI返回的文本。
Toast.makeText(getApplicationContext(), str, 90000000).show();
OK,接下去就是编译安装包看下效果了。
工程源码下载:
android jni java调用c_Android与JNI(一) ---- Java调用C 静态调用相关推荐
- android jni 调用 java_Android与JNI(二) ---- Java调用C++ 动态调用
目录: 1. 简介 2. JNI 组件的入口函数 3. 使用 registerNativeMethods 方法 4. 测试 5. JNI 帮助方法 6. 参考资料 1. 简介 Android与JNI( ...
- android jni java调用c,Android与JNI(一) ---- Java调用C 静态调用
第一.通过eclipse新建一个工程名为HelloJni的android工程,并编译. 第二.右键工程-->Android Tools --> Add Native Support,出现如 ...
- android开发教程(3)— jni编程之采用SWIG从Java调用C/C++
2019独角兽企业重金招聘Python工程师标准>>> Android 从Java调用C/C++ ...
- android调用so封装jni,GitHub - Michelle0716/AndroidJniDemo1: 安卓对c进行so文件打包,并以jni的形式进行调用...
AndroidJniDemo1 安卓对c进行so文件打包,并以jni的形式进行调用 项目中的部分 app : 编译so文件 jniDemo: 添加运行so文件 开发环境: android studio ...
- 在android的jni线程C传回调函数给java
Jni中C层传回调函数给java层 JNI回调是指在c/c++代码中调用java函数,当在c/c++的线程中执行回调函数时,会导致回调失败. 其中一种在Android系统的解决方案是: 把c/c++中 ...
- 基本JNI调用技术(c/c 与java互调)
注意我就是错在这个些包的名字上,导致调用失败 1,在项目根目录下建立文件夹libs/armeabi文件夹 2,将so库放入libs/armeabi文件夹注意事项: 1,如果采用静态注册的方式请注意C文 ...
- Linux平台Java调用so库-JNI使用例子
1.确保gcc编译器已安装 2.编写HelloJNI.java代码,用native声明需要用C实现的函数. 如果源程序是包含在package里的话,应该建立同样的文件夹结构,比如/home/swan/ ...
- java在主程序修改函数输出,Java通过JNI调用CUDA
--NG 这段时间因为工作需要,要用到在java中调用cuda程序,但是令人蛋疼的是网上这方面的资料几乎没有,所以只好我自己摸索.我的想法是通过java的JNI接口调用cuda,但是很明显正常情况下是 ...
- java JNI调用C语言动态链接库(java.lang.UnsatisfiedLinkError: no yourClassName in java.library.path 异常的解决方法)
转自: http://watershitter.iteye.com/blog/477615 今天花了至少3个小时跑这个java调c的动态链接库的Hello,native world的程序. 把所有犯 ...
最新文章
- Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息
- 快速上手的Glide4.x教程
- Java核心类库-IO-字节数组流/内存流
- CSS3属性之resize
- access工资明细表_《ACCESS》工资管理完整(整理).doc
- canal mysql从库_canal中间件|数据增量同步解决方案
- 从职场新人到企业高管,她是怎么做到的?
- [MySQL FAQ]系列 -- 新年新思想:MySQL也能并发导入数据
- dedecms联动筛选_织梦dedecms图片联动筛选教程
- 高一c语言期末试题及答案,广东省中山市杨仙逸中学高一信息技术上学期期中试题(C语言).doc...
- 教你如何用PS轻松制作ico图标
- 腾讯云阿里云4月服务器价格对比
- “第三只眼”修炼手册
- 【svn】 如何在Linux服务器上添加svn账户的教程
- Bootstrap实战 - 响应式布局
- 很不错的免费杀毒软件
- 用计算机绘制采油曲线,绘制采油曲线.ppt
- 长城汽车使用ENOVIA物料合规管理模块(MCC)
- Merkle树的实现
- Windows无法访问指定设备、路径或文件怎么办?