AndroidStudio环境下的jni调用(NDK)的方法

Step: 1. 添加native接口注意写好native接口和System.loadLibrary()即可了,并无特别之处。

Step: 2.执行Build->Make Project
生成了.class文件..class文件的生成路径是在 app_path/build/intermediates/classes/debug下的. 这个在android studio里面看不到, 到文件管理器里面翻到的, 里面还有好多东西。

Step: 3.javah生成c头文件
点击"View->Tool Windows->Terminal",即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。

这 里需要注意的是要进入 <Project>

Step: 1. 添加native接口注意写好native接口和System.loadLibrary()即可了,并无特别之处。

Step: 2.执行Build->Make Project
生成了.class文件..class文件的生成路径是在 app_path/build/intermediates/classes/debug下的. 这个在android studio里面看不到, 到文件管理器里面翻到的, 里面还有好多东西。

Step: 3.javah生成c头文件
点击"View->Tool Windows->Terminal",即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。

这 里需要注意的是要进入 <Project>\app\src\main的目录下执行javah命令,为的是生成的 .h 文件同样是在<Project>\app\src\main路径下(jni下面),可以在Studio的工程结构中直接看到。

操作命令:

..>cd app\src\main

main>javah -d jni -classpath <SDK_android.jar>;<APP_classes> <class>
 

javah -d jni -classpath c:\Users\Ximei\AppData\Local\Android\sdk1\platforms\android-21\android.jar;..\..\build\intermediates\classes\debug com.example.jnitest
只要什么错误都不提示说明运行成功!! 这时就可以去查看main目录下是不是多了一个jni文件夹,里面就是生成的头文件了。

看到<project>\app\src\main\jni\com_example_jnitest.h出现了. 

Step: 4.编辑c文件

在<project>\app\src\main\jni\com_example_jnitest.c文件中实现头文件中的函数。

编写C源文件com_example_jnitest.c。注意这里的函数名称一定要从之前生成的h文件里面复制过来,以免出错。 

Step: 5.配置NDK

这一步包括两个动作:

指明ndk路径
在local.properties中添加ndk目录, ndk目录中不可包含空格.
ndk.dir=C\:\\android-ndk-r10d

Step: 6.生成os文件。 
8.1、Build->Make Project生成so文件,这时如果只有一个c文件,就会报错,这是一个bug,解决办法很简单,随便新建一个空的c文件就行了。

查看  工程目录\app\build\intermediates\ndk\debug\lib目录里面各有一个os文件

Step: 7. 修改build.gradle配置

工程中共有两个build.gradle配置文件,我们要修改的是在<Project>\app\build.gradle这个文件。

为其在defaultConfig分支中增加上
    ndk {
        moduleName "jnitest"         //生成的so名字

	abiFilters "armeabi", "armeabi-v7a", "x86"

    }
 
Step: 8. 配置ndk路径。打开local.properties,加入NDK的路径(ndk需要单独下载,我在网上下载ndk后放在了和sdk相同的路径下) 
 
 
Step: 9. 调用jni,运行。


 


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值