Android studio项目调用SO库

  • Android studio创建Native C++工程
    • 下载Native C++工程编译工具
    • 新建native c++工程
    • native C++工程目录结构
    • 定义native-lib.cpp类中方法
    • 导出native C++工程so库
  • Android studio中新建Android工程
    • 配置Android工程调用本地so库
    • 新建libs文件夹
    • 调用so库

Android studio创建Native C++工程

创建native c++工程,生成so文件。

下载Native C++工程编译工具

打开Androidstudio设置界面,打开AndroidSDK下载界面,打开SDK Tools项,选择下图插件安装。

新建native c++工程

在Androidstudio中File中New project,选择Native C++工程,默认下一步创建即可。

native C++工程目录结构


c代码位于app/src/main/cpp文件夹中

定义native-lib.cpp类中方法


修改红色框内需要调用so库的具体方法路径。

导出native C++工程so库


so库准备完毕。

Android studio中新建Android工程


新建Android工程,调用so库。

配置Android工程调用本地so库

打开app中build.gradle文件,在defaultConfig同级添加如下代码:

sourceSets {main {jniLibs.srcDirs = ['libs']}}

在dependencies中添加

implementation fileTree(dir: 'libs', include: ['*.jar'])

新建libs文件夹


在app/libs包中新建armeabi-v7a文件夹,将so文件添加至该文件夹中。

调用so库

在Mainactivity类中加载so,代码如下:

static {System.loadLibrary("native-lib");}

实现native方法:
该方法返回即为调用so库返回

public native String stringFromJNI();

至此,android项目调用so库基本流程完成。

Android studio项目调用SO库相关推荐

  1. Android Studio项目调用第三方库iconv

    iconv动态库编译请参考:ubuntu-20.04.4环境下ndk-r21e 编译libiconv libiconv-1.16动态库下载:Android libiconv.so动态库 一.创建and ...

  2. Android Studio项目引入外部库注意事项(PullToRefresh)

    Android Studio开发App项目时引入第三方库是个比较麻烦的事情.之前导入Volley就折腾了好久,导入下拉刷新控件PullToRefresh时又碰到了各种问题.在此记录一下,以便查阅. 一 ...

  3. Android Studio项目整合PullToRefresh的问题记录

    PullToRefresh下拉刷新在App中应用非常频繁,然而PullToRefresh是在ADT下开发完成的.如果要将其整合到Android Studio目录下的话颇费周折.前面的文章"A ...

  4. java adt怎么打开项目,如何在Eclipse中打开Android Studio项目?

    慕的地6264312 将Android Studio项目导入Eclipse的分步过程 ...使用向导在eclipse中启动新的Android项目,并从app / build.gradle中填写以下详细 ...

  5. 【Android RTMP】Android Studio 集成 x264 开源库 ( Ubuntu 交叉编译 | Android Studio 导入函数库 )

    文章目录 安卓直播推流专栏博客总结 一. x264 简介 二. x264 交叉编译 三. Android Studio 导入函数库 四. 交叉编译版本 五. GitHub 项目地址 安卓直播推流专栏博 ...

  6. android 不同项目代码合并在一块,android - 是否可以将两个(正在积极开发中的)Android应用程序模块合并到同一个Android Studio项目中? - 堆栈内存溢出...

    我有两个工作正常的Android应用程序模块A和B,与同一个Android Studio项目相同. 它们每个都可以单独构建和运行. 但是如果我通过指定将模块A添加为"模块依赖项" ...

  7. Android Studio中导入第三方库

    之前开发Android都是使用的eclipse,近期因为和外国朋友Timothy一起开发一款应用,他是从WP平台刚切换使用Android的,使用的开发环境时Android Studio,为了便于项目的 ...

  8. android studio项目改成android.mk编译APP闪退java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

    android9系统android studio项目改成用android.mk编译v7包--APP闪退java.lang.UnsatisfiedLinkError: dalvik.system.Pat ...

  9. 让Android Studio项目通过阿里云 代理加速下载依赖资源

    让Android Studio项目通过阿里云 代理加速下载依赖资源 1.删除 Android Studio 的代理设置 (朋友们 注意!你要从https://maven.aliyun.com/mvn/ ...

最新文章

  1. 查看linux上面是否有安装redis,redis启动
  2. [转]VC++下使用ADO操作数据库
  3. 我的职业发展目标计算机作文,作文《我的职业发展目标》1000字
  4. Memcached常用命令及使用说明
  5. Grounded Theory and Coding Lecture Notes
  6. Git 删除远程仓库文件
  7. Bitset 用法(STL)
  8. 饭局潜规则,吃饭时的最大忌讳,就是低头玩手机
  9. 图解25匹马的选马问题
  10. python之类之多继承
  11. hls ask 调制
  12. python运算符用来计算集合并集的_Python 运算符中用来计算集合并集的是 _______ 。 (2.0分)_学小易找答案...
  13. DSP程序中常出现的EINT、DINT、ERTM、DRTM、EALLOW、EDIS的理解
  14. 万网域名注册、域名解析与备案流程
  15. Clouda聊天室实践
  16. AJAX框架衣柜改造出租屋,小伙爆改城中村出租屋,衣柜挂墙上第一次见,完工后房东愣了!...
  17. 当公路的规则与秩序,被昇腾AI时刻守护
  18. RTI1.3时间管理支持的两种模式
  19. 解决Ubuntu系统设置打不开
  20. 【计算机网络】数据通信技术基础(数据通信性能指标、传输介质、数据交换技术、差错控制技术)

热门文章

  1. iNeuOS工业互联网操作系统,在航天和军工测控领域的应用
  2. Threejs实现WebVR全景小行星入场动画/鱼眼效果/球形展开效果
  3. S3C6410 中断分析
  4. Unity 如何检测鼠标双击事件
  5. 云上的政务——数字政务云平台
  6. 一个简单的购物类网站
  7. 用python编程锁定别人的手机_python输入错误密码用户锁定实现方法
  8. CMGAN: Conformer-based Metric GAN for Speech Enhancement
  9. ubuntu下使用360wifi2做无线网卡
  10. matlab编程excosxdx求积分,求定积分∫e^2xcosxdx.