网站首页 > 技术文章 正文
把大象装进冰箱需要几步?
其实,如果顺利的话,AS 生成 so 的步骤还是比较清晰的。
但是,随着我升级到了 AS 最新版 「3.3.1 稳定版」
而且我也不再想使用下面两种方法解决
Your project contains C++ files but it is not using a supported native build
这个问题。
一、使用 「老版本 NDK」进行兼容:
把 android.useDeprecatedNdk=true 添加进 gradle.properties 中
二、隐藏 cpp 文件:
在 app 的 build.gradle 中添加
sourceSets {
main {
jni.srcDirs = []
}
}
那么,步骤就多了几步了,不过没关系,只要跟着我填坑的姿势 一步一步走 还是能成功的,而且花费的时间也不是很多哟,一起来看看吧。
开始啦
一、先配置 NDK 环境
说明:创建项目完成之后,点击图片右上角的 项目结构,然后选择 SDK Location 就能看到 NDK 配置出现了,直接点击让 AS 自己下载、配置就可以了
二、配置好之后,创建 JNI 文件夹
看图就会啦
三、创建好之后,通过 javah 命令生成「头文件」
命令:
javah com.example.ndktest.MainActivity
即 javah 后边跟着 我们的 MainActivity 的「引用名」,没有 .class 后缀的哦
复制引用名方法:复制好之后,把 .class 后缀去掉
注意我是先进入的java目录,然后开始执行的呦,生成之后,记得将这个头文件移动到 jni目录中
四、配置 build.gradle,然后构建项目
按照图片方式执行完后,报错了
这个时候,你可以按照我 开头说的那两个方法解决一下,是可以通过的,可是现在我有点倔,就不用那两种方法,我决定听一听 android studio 善意的提醒 Consider using CMake or ndk-build integration.
五、按照 Android Studio 的提示,使用 CMake 或者 ndk-build 去生成
module 处右键 选择 Link C++ Project with Gradle
选择哪个都可以,这里我选择是 ndk-build,因为 CMake 对应的 CMakeLists.txt 文件懒得写
而ndk-build对应的 Android.mk文件却有现成的,位置在:app/build/intermediates/ndk/debug如下图所示:
复制路径,然后指定一下即可,如图
最后,点下小锤子
这样就成功生成了,生成的位置见下图
六、复制 so 文件到 libs 目录即可
Bingo !!!搞定了
猜你喜欢
- 2024-10-27 NDK开发——FFmpeg视频解码 ffmpeg ndk
- 2024-10-27 Camera基本代码架构 camera calibrator
- 2024-10-27 android 功耗分析方法和优化(1) 功耗app
- 2024-10-27 Cocos Creator v2.3.2 发布了!全新 Launcher 效率飞起!
- 2024-10-27 如何androd动态注册编写计算器 淘宝动态评分计算器在线
- 2024-10-27 高通平台OV8856 Camera的bring up总结
- 2024-10-27 高通平台移植GC2145 Camera驱动 高通驱动安装
- 2024-10-27 《坎公骑冠剑》光炮Android Mk.99技能与背景故事
- 2024-10-27 ubuntu移植libwebp到Android平台 ubuntu移植到arm
- 2024-10-27 步步为营,十分钟学会 Native JNI(附带彩蛋)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)