这几天需要使用C语言在底层编译,所以就打算在Android studio中打造可以编译C的环境,毕竟使用Android studio久了,就不怎么想用Eclipse开发了
废话不多说,直接来看一波集成过程
第一步:

这个就是我创建的一个普通的Android项目的列表
第二步:
进入Android studio的SDK Location
具体方式:File->Project Structure->SDK Location
第三步:
选择你的NDK location:

推荐尽量从网上单独下载NDK,不要在SDK Manager里面下载,有时候在里面下载的会出现问题,我就出现了,我也不知道什么原因,有大神知道的话,可以留言告诉下在下,抱拳了 老铁
这是我的ndk:

http://pan.baidu.com/s/1hrPPquS密码:qcud

如果不知道怎么使用的话,直接百度吧,度娘有什么多的解释
第四步:
在你那个MainActivity中写代码:
public nativeString getString();
这个时候需要来一波注意了,MainActivity不能继承与AppCompatActivity这个类,而需要继承与Activity这个类,我就是被这个坑给坑了一天多的时间,果然太恶心了这东西
然后方法名会报红色,这个时候不要紧张,build project一下,生成MainActivity类的.class文件
具体位置

形成这些要干啥呢,不要紧张,继续看下一步
第五步:
打开你的Android studio命令窗口,也就是
这个东西.如果你不懂linux命令的话,你就直接复制粘贴,更改自己的路径 就可以了
然后在上面执行:
cd app\src\main //进入main文件夹
接下来使用javah命令,生成对应的头文件:
javag -d -jni -classpath D:\adt-bundle-windows-x86_64-20140321\sdk\platforms\android-22\android.jar;../../build/intermediates/classes/debug com.example.ios.studentday07.MainActivity
注意了:android.jar这个东西,需要换成你电脑上sdk中android..jar的路径,然后最后那个是包名.类名,就是你需要执行c中的方法的那个类的包名和类名
然后你会发现你的目录中自动的出现了一个jni文件夹,文件夹下有个你 包名.类名.h 的文件
这个就表示你生成头文件成功了
第六步:
在你的jni文件夹下面创建一个c/c++文件类型,然后你就可以在里面实现你的c语言代码了

比如我就在里面写了:
#include "com_example_ios_studentday07_MainActivity.h"
//#include <android/log.h>
//#define LOG_TAG "System.out"
//#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#pragma clang diagnostic push
#pragma ide diagnostic ignored "CannotResolve"
//#define LOGINFO(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
JNIEXPORT jstring JNICALL Java_com_example_ios_studentday07_MainActivity_getString
(JNIEnv * env, jobject obj){
// LOGINFO("LOGINFO");
return(*env)->NewStringUTF(env,"NDK 测试成功");
}
#pragma clang diagnostic pop
然后,现在流程差不多了.
第七步:
你想要运行起来,现在还不行咯
你需要在你的Module下面写上这样的一些东西,虽然我也不懂:

第八步(最后一步):
需要在事先在加载你刚才创建的.so库:
比如我这个demo中:
static{
System.loadLibrary("MyJni");
}
最后你的MainActivity中写代码吧!!

这个就可以加载c语言了
demo地址:http://download.csdn.net/detail/a376051132/9801631

Android Studio集成NDK开发环境相关推荐

  1. android Studio 配置LUA 开发环境

    android Studio 配置 LUA 开发环境 关于Android LUA资料 android如何调用lua? Android lua 教程 Lua官网 lua语言解释 Lua 5.1 参考手册 ...

  2. android studio lua插件,android Studio 配置LUA 开发环境

    android Studio 配置 LUA开发环境 关于Android LUA资料 引诉大牛的原话: Android 调用 Lua /Lua 调用 Android 代码 在Android项目中使用Lu ...

  3. android studio lua插件,[置顶] android Studio 配置LUA 开发环境

    android Studio 配置 LUA 开发环境 关于Android LUA资料 android如何调用lua? Android lua 教程 Lua官网 lua语言解释 Lua 5.1 参考手册 ...

  4. 使用Android Studio 进行NDK开发和调试

    2019独角兽企业重金招聘Python工程师标准>>> 尽管Android Studio已经越来越流行了,但很多人还是习惯于Eclipse或源码环境下开发JNI应用.个人认为使用An ...

  5. 使用 Android Studio 搭建安卓开发环境

    使用  Android Studio  搭建安卓开发环境,方便.快捷.因为 Android SDK 等下载已经集成到 Android Studio 的安装中 1.官网下载 Android Studio ...

  6. Android studio中NDK开发(四)——使用addr2line分析Crash日志 backtrace

    文章目录 一.前言 二.分析 1.先提取backtrace部分 2.提取对应so库的信息 3.提取错误地址 三.使用addr2line对地址进行转换 1.addr2line工具的路径放在 2.Term ...

  7. android studio下NDK开发

    2019独角兽企业重金招聘Python工程师标准>>> 1.NDK 的下载 和 配置 NDK 下载地址 : https://developer.android.com/ndk/ind ...

  8. 26.Android Studio下Ndk开发(ffmpeg导入Android studio以cmake方式编译的过程)

    Android studio 2.2开始支持cmake的方式进行jni开发,我在另一篇10.Eclipse下Ndk开发(ffmpeg解码)中写过Eclipse下编译ffmpeg的过程,但是现在几乎没有 ...

  9. android搭建opencv开发环境,Android Studio搭建opencv开发环境

    文章不配图片,阅读需要有Android开发基础并熟悉Android Studio. 一.搭建基于Java开发环境 以下内容介绍如何搭建基于Java jni的opencv开发环境. 1.准备工作 从op ...

最新文章

  1. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:让按钮看起来像个链接 (仍然保留按钮行为)...
  2. 喜报!中华万年历签约神策数据
  3. Command(命令)--对象行为型模式
  4. H - Holy Grail
  5. java 不定参数方法_java中不定长参数的使用方法
  6. C#开发微信门户及应用(32)--微信支付接入和API封装使用
  7. mysql一对多增删改查_SQLAlchemy 增删改查 一对多 多对多
  8. InfoQ就Spring Boot 2.0 GA版发布采访了项目牵头人Phil Webb
  9. AFNetworking2.0源代码解析
  10. Python 微信自动化工具开发系列03_自动向微信好友发送信息和文件(2022年10月可用)
  11. 熊猫入金讲为什么seo没效果
  12. android toast通知关闭,Android Toast通知用法实例详解
  13. 如何用计算机串口烧录芯片,如何使用串口烧写xmc1301芯片.pdf
  14. python interpreter下载_Pyonic Python 2 interpreter
  15. cascading 使用_欢迎使用Cascading 2.0 –减轻Hadoop困境的开源API
  16. python遇到错误跳过_python 如何跳过异常继续执行
  17. 锁相环载波同步MATLAB实现,MATLAB中利用锁相环实现载波同步
  18. 【测试】软件测试之黑盒、白盒、灰盒测试
  19. 迭代器 ------------如何使用迭代器(list)
  20. 快数据如何在物联网高速公路上驱动分析

热门文章

  1. 来来来!docker清华源
  2. 通过JavaScript中基于属性的TDD的钻石方块
  3. 关于java中判断一个点是否在一个长方形内和一个长方形是否包含另一个长方形或者两个相重叠的问题。
  4. Mybatis中 if 语句使用空格问题
  5. 探寻中国便携式医疗电子市场的机遇与挑战
  6. SQL Server AlwaysOn部署
  7. 利普希茨连续(Lipschitz continuous)及其应用
  8. 微信支付-超详细java开发-小程序对接
  9. dcos 正确的查看日志的姿势
  10. 谷歌浏览器翻译本地的html,谷歌Chrome浏览器开启自带的翻译功能的方法