2019独角兽企业重金招聘Python工程师标准>>>

最近的项目涉及到JNI编程,经过一段时间的JNI编程之后,终于完美弄完了。所以,把在android studio中编译c/c++文件成.so库的过程记录一下。

使用ndk-build方式编译 .so库

1、在android studio上安装ndk。

2、配置ndk的环境变量。

把如图中的ndk路径配置到环境变量中

3、在android studio中创建一个android工程,并且android的工程的main目录下创建一个jni文件夹。

需要在gradle.propertis文件中添加:

android.useDeprecatedNdk=true

4、在build.gradle文件中的android{defaultConfig{}}里面配置编译成.so库的相关配置。

如:

android {......defaultConfig {......ndk {moduleName "hello"        // 生成的so动态库名称abiFilters "armeabi", "armeabi-v7a", "x86" // 输出指定三种abi体系结构下的so库}}......
}

5、在jni目录下,创建一个c或者c++文件。如:

在hello.c文件中编写代码,例如:

如果在本工程中直接通过java文件中调用c/c++文件中的函数。如:

6、生成.so文件。

在android studio中的工具栏build中,选择build project。如图

编译完之后,在android项目工程的build下就可以找到编译成的.so文件,这样就可以打包给其他android工程引用了 。

在android studio中把c/c++源码编译成.so文件就大功告成。

转载于:https://my.oschina.net/u/2002921/blog/738801

android studio中把c/c++文件编译成.so库(一)相关推荐

  1. Android Studio中打开R.java文件的方法

    1 R.java文件简介 Android Studio中的R.java文件自动收录当前应用中所有的资源,并根据这些资源建立响应的ID,可以把R.java当成Android应用的资源字典.R.java文 ...

  2. Android studio中正确引入so文件的方法

    相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式. Android studio中默认使用的是gradle编译方 ...

  3. 怎么配置android远程服务器地址,在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”...

    需求: 在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址.比如 开发服务器使用 192.168.1.232服务器, 测试服务器使用 192.168.1.245服务器, 正式上 ...

  4. android studio 本地html,android - 从当前HTML文件Android Studio中打开本地HTML文件? - 堆栈内存溢出...

    我在Android Studio上制作了一个WebView应用. 它会正确打开我的默认索引HTML页面 @Override protected void onCreate(Bundle savedIn ...

  5. 在Android Studio中添加mp3音频文件

    1.在res文件夹下创建raw文件夹 2.将mp3文件粘贴到raw中即可 注意事项: 在android studio开发环境中,需要将目录结构切换到android模式下 如果是poject模式会怎样? ...

  6. pyx文件编译成so库

    pyx文件 # file: hello.pyx def say_hello_to(name):print("Hello %s!" % name) # file: setup.py ...

  7. Android Studio中R.java的文件路径

    R.java是Android工程编译时自动生成的资源id索引文件,资源类型有很多,比如:anim.animator.array.attr.bool.color.dimen.drawable.id.in ...

  8. 在android studio中,引用.so文件

    2019独角兽企业重金招聘Python工程师标准>>> 方法1: 把 .so文件复制到自己创建的工程的libs目录下,然后在build.gradle文件中,添加 sourceSets ...

  9. android+assets+在哪,我在哪里将’assets’文件夹放在Android Studio中?

    我对assets文件夹感到困惑. 它不是在Android Studio中自动创建的,几乎所有论坛都讨论了Eclipse. 如何在Android Studio中配置Assets目录? 由于Android ...

最新文章

  1. 【枭·音频】感同声受——《暗影火炬城》PS5 HD震动制作
  2. 【转】我的CV之路第一篇:ITK是啥?
  3. sentry + vue实现错误日志监控
  4. SharePoint Manager 2007 国外高人写的管理工具,有特色,对学习moss有帮助
  5. C++之继承探究(十一):多重继承、菱形继承、虚继承、二义性问题及其解决方案
  6. Python学习:day20正则表达式
  7. 艾索特DSP电脑调音软件
  8. java实现MongoDB中unwind与match用法
  9. 5分钟搭建私人Java博客系统——Tale
  10. Windows 11 Insider Preview Build 22000.132 官方简体中文版 iso 下载
  11. Word编号设置和跳到尾页快捷键
  12. ajax将监听器值赋值servlet,Java面试问题
  13. 关于stable diffusion的embedding训练的一篇随笔
  14. 实现圆形头像(并且不管图大小都显示成固定尺寸)-和上一篇有点不同。
  15. 初学Python之华氏摄氏温度转换
  16. 网关状态检测 echo request/reply
  17. 计算机毕业论文选题推荐|软件工程|系列二
  18. 工业互联网不能没有“数据智能”心
  19. 文献检索工具 | 计算机类英文文献检索数据库DBLP
  20. android增加5G热点,运营商甘拜下风:Android 11将划分5G信号新层次

热门文章

  1. 转:Real6410 Linux 常见问题总结(截至2010/07/26)
  2. 【hive】hive----自定义UDF 函数-----时间格式化以及取出双引号的代码
  3. Linux信号的产生和处理
  4. 08-07 性能测试--性能监听平台
  5. 暗棋单机版_中国暗棋游戏下载-中国暗棋下载v1.0.0 安卓版-单机手游网
  6. map for循环_阿里面试问我hashMap的循环姿势有哪几种?
  7. raster | R中的栅格操作符(上)[翻译]
  8. base | 文本处理方法(Ⅰ-2):正则表达式
  9. import java.util_importjava.util.*;classKeyMaster{publi..._考试资料网
  10. JavaScript的三大基本操作案例讲解