第一、通过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 静态调用相关推荐

  1. android jni 调用 java_Android与JNI(二) ---- Java调用C++ 动态调用

    目录: 1. 简介 2. JNI 组件的入口函数 3. 使用 registerNativeMethods 方法 4. 测试 5. JNI 帮助方法 6. 参考资料 1. 简介 Android与JNI( ...

  2. android jni java调用c,Android与JNI(一) ---- Java调用C 静态调用

    第一.通过eclipse新建一个工程名为HelloJni的android工程,并编译. 第二.右键工程-->Android Tools --> Add Native Support,出现如 ...

  3. android开发教程(3)— jni编程之采用SWIG从Java调用C/C++

    2019独角兽企业重金招聘Python工程师标准>>>                                            Android 从Java调用C/C++ ...

  4. android调用so封装jni,GitHub - Michelle0716/AndroidJniDemo1: 安卓对c进行so文件打包,并以jni的形式进行调用...

    AndroidJniDemo1 安卓对c进行so文件打包,并以jni的形式进行调用 项目中的部分 app : 编译so文件 jniDemo: 添加运行so文件 开发环境: android studio ...

  5. 在android的jni线程C传回调函数给java

    Jni中C层传回调函数给java层 JNI回调是指在c/c++代码中调用java函数,当在c/c++的线程中执行回调函数时,会导致回调失败. 其中一种在Android系统的解决方案是: 把c/c++中 ...

  6. 基本JNI调用技术(c/c 与java互调)

    注意我就是错在这个些包的名字上,导致调用失败 1,在项目根目录下建立文件夹libs/armeabi文件夹 2,将so库放入libs/armeabi文件夹注意事项: 1,如果采用静态注册的方式请注意C文 ...

  7. Linux平台Java调用so库-JNI使用例子

    1.确保gcc编译器已安装 2.编写HelloJNI.java代码,用native声明需要用C实现的函数. 如果源程序是包含在package里的话,应该建立同样的文件夹结构,比如/home/swan/ ...

  8. java在主程序修改函数输出,Java通过JNI调用CUDA

    --NG 这段时间因为工作需要,要用到在java中调用cuda程序,但是令人蛋疼的是网上这方面的资料几乎没有,所以只好我自己摸索.我的想法是通过java的JNI接口调用cuda,但是很明显正常情况下是 ...

  9. java JNI调用C语言动态链接库(java.lang.UnsatisfiedLinkError: no yourClassName in java.library.path 异常的解决方法)

    转自: http://watershitter.iteye.com/blog/477615 今天花了至少3个小时跑这个java调c的动态链接库的Hello,native world的程序.  把所有犯 ...

最新文章

  1. Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息
  2. 快速上手的Glide4.x教程
  3. Java核心类库-IO-字节数组流/内存流
  4. CSS3属性之resize
  5. access工资明细表_《ACCESS》工资管理完整(整理).doc
  6. canal mysql从库_canal中间件|数据增量同步解决方案
  7. 从职场新人到企业高管,她是怎么做到的?
  8. [MySQL FAQ]系列 -- 新年新思想:MySQL也能并发导入数据
  9. dedecms联动筛选_织梦dedecms图片联动筛选教程
  10. 高一c语言期末试题及答案,广东省中山市杨仙逸中学高一信息技术上学期期中试题(C语言).doc...
  11. 教你如何用PS轻松制作ico图标
  12. 腾讯云阿里云4月服务器价格对比
  13. “第三只眼”修炼手册
  14. 【svn】 如何在Linux服务器上添加svn账户的教程
  15. Bootstrap实战 - 响应式布局
  16. 很不错的免费杀毒软件
  17. 用计算机绘制采油曲线,绘制采油曲线.ppt
  18. 长城汽车使用ENOVIA物料合规管理模块(MCC)
  19. Merkle树的实现
  20. Windows无法访问指定设备、路径或文件怎么办?

热门文章

  1. trietree的一个小练习
  2. Windows 消息ID及定义大全
  3. C#创建Access
  4. [翻译]VC++中创建并使用自定义控件
  5. IOS15的抽屉效果
  6. IOS开发基础之音频工具类封装AVAudioPlayer
  7. Object-C基础入门笔记(一)
  8. 树莓派删除python2.7设置python3.5
  9. Jython安装配置教程(2.7.2)
  10. 则执行C语言语句unsigned,部分C语言题目