Android studio项目调用SO库
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库相关推荐
- Android Studio项目调用第三方库iconv
iconv动态库编译请参考:ubuntu-20.04.4环境下ndk-r21e 编译libiconv libiconv-1.16动态库下载:Android libiconv.so动态库 一.创建and ...
- Android Studio项目引入外部库注意事项(PullToRefresh)
Android Studio开发App项目时引入第三方库是个比较麻烦的事情.之前导入Volley就折腾了好久,导入下拉刷新控件PullToRefresh时又碰到了各种问题.在此记录一下,以便查阅. 一 ...
- Android Studio项目整合PullToRefresh的问题记录
PullToRefresh下拉刷新在App中应用非常频繁,然而PullToRefresh是在ADT下开发完成的.如果要将其整合到Android Studio目录下的话颇费周折.前面的文章"A ...
- java adt怎么打开项目,如何在Eclipse中打开Android Studio项目?
慕的地6264312 将Android Studio项目导入Eclipse的分步过程 ...使用向导在eclipse中启动新的Android项目,并从app / build.gradle中填写以下详细 ...
- 【Android RTMP】Android Studio 集成 x264 开源库 ( Ubuntu 交叉编译 | Android Studio 导入函数库 )
文章目录 安卓直播推流专栏博客总结 一. x264 简介 二. x264 交叉编译 三. Android Studio 导入函数库 四. 交叉编译版本 五. GitHub 项目地址 安卓直播推流专栏博 ...
- android 不同项目代码合并在一块,android - 是否可以将两个(正在积极开发中的)Android应用程序模块合并到同一个Android Studio项目中? - 堆栈内存溢出...
我有两个工作正常的Android应用程序模块A和B,与同一个Android Studio项目相同. 它们每个都可以单独构建和运行. 但是如果我通过指定将模块A添加为"模块依赖项" ...
- Android Studio中导入第三方库
之前开发Android都是使用的eclipse,近期因为和外国朋友Timothy一起开发一款应用,他是从WP平台刚切换使用Android的,使用的开发环境时Android Studio,为了便于项目的 ...
- android studio项目改成android.mk编译APP闪退java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
android9系统android studio项目改成用android.mk编译v7包--APP闪退java.lang.UnsatisfiedLinkError: dalvik.system.Pat ...
- 让Android Studio项目通过阿里云 代理加速下载依赖资源
让Android Studio项目通过阿里云 代理加速下载依赖资源 1.删除 Android Studio 的代理设置 (朋友们 注意!你要从https://maven.aliyun.com/mvn/ ...
最新文章
- 查看linux上面是否有安装redis,redis启动
- [转]VC++下使用ADO操作数据库
- 我的职业发展目标计算机作文,作文《我的职业发展目标》1000字
- Memcached常用命令及使用说明
- Grounded Theory and Coding Lecture Notes
- Git 删除远程仓库文件
- Bitset 用法(STL)
- 饭局潜规则,吃饭时的最大忌讳,就是低头玩手机
- 图解25匹马的选马问题
- python之类之多继承
- hls ask 调制
- python运算符用来计算集合并集的_Python 运算符中用来计算集合并集的是 _______ 。 (2.0分)_学小易找答案...
- DSP程序中常出现的EINT、DINT、ERTM、DRTM、EALLOW、EDIS的理解
- 万网域名注册、域名解析与备案流程
- Clouda聊天室实践
- AJAX框架衣柜改造出租屋,小伙爆改城中村出租屋,衣柜挂墙上第一次见,完工后房东愣了!...
- 当公路的规则与秩序,被昇腾AI时刻守护
- RTI1.3时间管理支持的两种模式
- 解决Ubuntu系统设置打不开
- 【计算机网络】数据通信技术基础(数据通信性能指标、传输介质、数据交换技术、差错控制技术)
热门文章
- iNeuOS工业互联网操作系统,在航天和军工测控领域的应用
- Threejs实现WebVR全景小行星入场动画/鱼眼效果/球形展开效果
- S3C6410 中断分析
- Unity 如何检测鼠标双击事件
- 云上的政务——数字政务云平台
- 一个简单的购物类网站
- 用python编程锁定别人的手机_python输入错误密码用户锁定实现方法
- CMGAN: Conformer-based Metric GAN for Speech Enhancement
- ubuntu下使用360wifi2做无线网卡
- matlab编程excosxdx求积分,求定积分∫e^2xcosxdx.