Android Studio2.2 用CMakeLists 进行NDK开发遇到的坑

Android Studio2.2配置MakeList使用cmake编译c文件 初次使用cmake来编译c文件在Android项目中,那个快感能传递到骨髓里,欲罢不能.只能说谁用谁知道.如果还没有使用,请赶快用一次,初次体验一共三部: 第一:studio升级到2.2以后的版本,安装NDK,cmake工具 第二:创建新项目勾选 Include C++ Support 选项。 第三:一路下一步,安装运行项目 阅读详情

官方的Android Studio2.2 用CMakeList调用C++代码参考文档

http://blog.youkuaiyun.com/wl9739/article/details/52607010

下面是CMakeLists脚本文件的编写,必须包含所有用到的cpp文件,native-lib生成库的名字


包含cpp文件的头文件


接下来按官方的步骤编写即可

app目录下的gardle设置

cmake {
    cppFlags "-frtti -fexceptions -std=c++11"
}
这三个参数的含义分别是支持RTTI编译 , 支持抛出异常,支持c++11标准库.

这是根据你C++源代码是否要支持RTTI,比如用到dynamic_cast,就必须支持RTTIle,否则编译报错.

NDK中的c++11库和VS中的c++库有所差异,酌情修改C++代码.

注:

多次编译后如果未通过编译,删掉cmake文件夹重新编译


Android Studio开发JNI示例 JNI和NDK介绍 JNI(Java Native Interface),是方便Java调用C、C++等Native代码所封装的一层接口,相当于一座桥梁。通过JNI可以操作一些Java无法完成的与系统相关的特性,尤其在图像和视频处理中大量用到。 NDK(Native Development Kit)是Google提供的一套工具,其中一个特性是提供了交叉编译,即C或者C++不是跨平台的,但通过N... 阅读详情

相关推荐

Android NDK开发之旅(2):Android Studio中使用CMake进行NDK/JNI开发(初级)

CMake是一款比make更强大的编译自动配置工具,它可以根据不同平台、不同的编译器,并通过CMakeLists.txt文件中简单的语句来描述所有平台的编译过程,生成相应的Makefile文件或project文件。CMake被引入于AndroidStudio2.2,其目的是替代原有的JNI/DNK开发方法,使AS在进行JNI/NDK时更加的方便、高效。CMake的优势如下: (1) 允许直接在C/C++代码中加入断点,调试; (2) 在Java层中使用“ctrl+左键”快捷键能够直接进入本地方法对应

老蒋也疯狂 9658

Android native c++ 代码不能调试debug原因之一

3.最大的区别是在加上set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -s") 后 so文件是无法进入Debug代码的,去掉是可以dubug native c++代码的。1.很多android 下的so库在cmake编译时,会加上下面link 选项。加上这个选项的好处是,删除多余符号表和定位信息,这样可以让so文件更加小。没有设置时so文件为1,865KB。查看native代码和java代码。

huzhifei的专栏 478

Android studio中NDK开发(一)——使用CMake构建NDKDemo

一、前言 NDK可以支持使用C/C++来编写Android程序,不但可以引入C/C++中优秀的库资源,而且在使用底层的C/C++来处理一些复杂的运算效率更高,并且可以方便跨平台移植。本篇主要以CMake的方式来构建NDK,主要以最常规的方式创建一个NDKImportDemo,并对自动创建官方例子进行分析构建的过程以及CMakeLists.txt构建文件的配置。   二、准备 1、检查And...

Xiongjiayo的博客 2619

android studio修改了cmakelist.txt里的内容,要重新编译,如何操作

找了很久,也不知道要怎么弄,最后在才知道原来是要点这个就行了

sun007700的专栏 2319

AndroidStudio2.2下利用CMake编译方式的NDK opencv开发

AndroidStudio2.2对C++开发做了很好的支持,默认使用CMake构建编译,以前做Andorid下的opencv开发都是基于Android.mk方式是编译和配置opencv依赖的加载,本文通过配置CMakeList.txt来完成NDK opencv开发。 第一步、建立一个支持C++的工程,如下: 第二步、建立一个NDKloader类,如下: public class

ddjjll8877的博客 9790

Android Studio NDK 构建工具 CMake初探

CMake 是 Android studio 支持的一种新的NDK构建工具,这篇文章主要是对官方介绍的一个翻译和一些简单的尝试。

Final Object 的博客 1万+

记录一下使用ANDROID NDK CMAKE遇到的坑。

最终环境: NDK 16B CMAKE 3.6.2 ANDROID STUDIO 3.0.1 最坑的是什么? C盘目录下调用CMAKE没有生成.O。 MAKEFILE 日志看出来的。 工程千万不要放到C盘下面。。。。

MAGICYANG的专栏 570

Windows环境使用CLion进行Android NDK开发配置

下载软件与系统相关配置 下载安装CLion 2021.2.2版本 下载安装Android Studio最新版本,如下图进入设置,然后下载最新版本的NDK和CMake 进入Android Studio下载的SDK,SDK包含了Android开发的所有套件以及依赖,包含了C++, Java等以来都在这里。 下载完成了Android SDK后,Android中的adb一些组件加入操作系统的环境变量,这样的目的是我们可以在命令行使用adb这些组件了。 我们在windows系统中的命令行界面敲入adb,就能正常

Hello_Ray的博客 4848

Android Studio之NDK开发

Android Studio之NDK开发 一、 前言 NDK全称是Native Development Kit,是Android提供的一个开发工具包,能够快速将开发的C,C++的动态库,协议软件包,以及优秀的软件工具,用so和应用打包成APK,自由地在Android上运行。而NDK开发工具,就是将C/C++程序,编译成为Android环境可运行的程序,再者,通过NDK实现Android中实现JNI编程。那么JNI又是啥呢?JNI的全称是Java Native Interface,即Java的本地接口,JNI

yinshenk的博客 1万+

Android Studio中NDK的配置及开发实战

Native Development Kit(NDK)是Android开发套件的一部分,允许开发者使用C和C++编写应用的部分代码。它提供了一套工具集,包括编译器、构建器和调试器,从而使得开发者能够更有效地开发高性能的多线程应用。

weixin_42611177的博客 2033

Android Studio下NDK开发实战指南

Android NDK(Native Development Kit)允许开发者利用C/C++代码来编写性能敏感的部分,从而提高Android应用的执行效率。通过NDK,开发者可以直接调用底层硬件和操作系统功能,实现与Java层的交互。相比于纯Java实现,NDK开发可以显著优化CPU密集型任务,如图像处理、游戏、物理模拟等。JNI,即Java Native Interface,是Java提供的一种机制,允许Java代码和其他语言写的代码进行交互。

weixin_42430341的博客 581

Android的JNI【实战教程】5⃣️---Android Studio 2.2 以上 NDK开发

今天介绍一下Android Studio 2.2 下 NDK开发 ,那叫一个顺溜—-纵享丝滑! 虽然现在AS 2.2 之后,jni开发配置相当方便,但是还是建议大家从我的第一篇文章看起,从基础知识入手,并且要了解之前是如何配置NDK工程的,这是一个循序渐进的过程。今天主要介绍一下如何分别在新工程和老工程中创建最新NDK项目。新工程创建Ndk Project创建 创建时候勾选 include

李彬博客专栏 3349

手把手教你用STM32CubeMX配置I3C通信(含动态地址分配实战)

本文提供了一份基于STM32CubeMX配置I3C通信的实战指南,重点讲解了动态地址分配的实现步骤。通过详细的工程配置、从设备枚举、CCC命令使用及数据读写示例,帮助开发者快速掌握这一高效通信协议,以替代传统的I2C或SPI接口,满足多传感器连接与低功耗设计需求。

c8d9e0f1的博客 546

android studio NDK开发记录 CMakeLists 有cpp、h源码

19年那会儿我还搞过,两年过去了很多步骤忘记了,再就是android studio也升级换代了好几个,网上搜的大部分都过时了,以此记录开发过程。 CMakeLists开发;android studio3.6.2,如果选择4.n也能凑合用;gradle-5.6.4-all.zip;classpath 'com.android.tools.build:gradle:3.6.2';compileSdkVersion 30 buildToolsVersion "30.0.3"(这个无所谓,晒出来的意思是最新的也一

迷彩狼的博客 454

Linux下基于AHCI controller模块实现SATA Platform驱动附代码详细流程

本文主要是针对ARM A55集成了AHSATA controller模块开发sata驱动,通过Platform的形式在linux识别到SSD,本文详细讲述整个开发过程,同时对SATA Platform驱动进行讲解。1、配置SATA Phy的初始化;2、打开SATA Platform相关编译开关;3、配置设备树;4、linux启动识盘。

Luckiers的博客 2497

Polyworks脚本开发实战指南:高效生成数据彩图与报告的关键指令解析

本文深入解析了Polyworks脚本开发中生成数据彩图与自动化报告的核心指令。通过实战案例,详细介绍了REFERENCE_SURFACE、THICKNESS和CLEARANCE等关键彩图生成指令的正确用法与常见避坑点,并阐述了如何利用REPORT_ITEM命令实现从截图、表格生成到智能排版的全流程自动化,旨在帮助三维检测与质量控制工程师大幅提升工作效率与报告标准化水平。

weixin_29209825的博客 556

AndroidStudio NDK开发配置CmakeLists文件

1 默认的 CmakeLists # For more information about using CMake with Android Studio, read the # documentation: https://d.android.com/studio/projects/add-native-code.html # Sets the minimum version of CMak

米小豆的博客 1059

27930-2015+充电协议解析

对2015+充电与2015充电进行硬件电路对比、通信协议对比和2015+通信协议解析。

manjixingkong1234的专栏 239

Android studio ndk配置cmake开发native C

Android 2.2 以后的版本对NDK的支持已经非常好了。最近把一个纯C的android项目,从eclipse ADT迁移到Android studio上。本文是参考 Add C and C++ Code to Your Project 官方文档(需要翻墙),经过各种尝试之后的总结。 Android studio整合NDK开发,有两种模式,一种是ndk build,一种是cma

把理性与逻辑灌入电光石火奔腾流淌的指令集…… 4293

在YOLO中扩充新类别并且不影响旧类的识别精度

让我们先从简单的部分开始:用我们的新类训练自定义 YOLOv8 模型。在本教程中,我们将向模型添加车牌类。我们将使用Roboflow 中的一个数据集。这个数据集有两个车牌类。在开始训练之前,我们还必须对库进行一些更改。为了节省时间,我还将本教程中我们将进行的更改转换为补丁该补丁包含多项更改,但大多数更改都用于指南的下一部分。if RANK!= -1:是的,我们将编写一个回调。我们希望将此自定义训练模型的头部与 COCO 预训练模型中的旧头部一起使用。

如果想成为中心,那么就到中心去吧。 1226

论文深度解析:基于大语言模型的城市公园多维度感知解码与公平性提升

本文针对城市公园感知测量的精细化不足与公平性评估缺口,提出了一套融合社交媒体数据与大语言模型(LLM)的创新分析框架。通过领域适配微调开发的Park-Perception-LLM模型,实现了对感知可达性、可用性、吸引力三大核心维度83%-91%的高精度分类。将该感知指标创新性地融入增强两步浮动集水区法(E2SFCA),以香港高密度城市为案例,系统揭示了公园质量与数量的空间不平等及错配模式。借助多元回归模型,深入挖掘了公园内部特征、宏观建成环境、微观街道景观及时间因素对感知的影响机制。

May the Force be with you 1018

移植 OLLVM 到 Android NDK,Android Studio 中使用 OLLVM

自 Android NDK r18 开始,Google 弃用了 GCC,全面转向使用 LLVM/Clang 作为 NDK 的编译工具链。OLLVM 是 LLVM 的一个分支,增加了代码混淆功能(如控制流平坦化、指令替换),主要用于保护二进制代码的安全性。bin:包含可执行文件,例如编译器(clang、clang++)、链接器(ld)等,主要用于 NDK 工具链的操作。例如,支持标准 C/C++ 函数的实现库。NDK 中 LLVM 所在路径:/toolchains/llvm/prebuilt//bin/

2296

基于STM32设计的ECG+PPG人体参数测量系统(华为云IOT)(217)

该系统的核心是基于STM32F103RCT6微控制器,这是一种高性能、低功耗的嵌入式处理器,适用于各种复杂的控制和数据处理任务。系统利用先进的传感器技术,如光电传感器PulseSensor模块来准确测量人体脉搏血氧饱和度及心率(PPG),同时采用AD8232生物电信号采集模块捕捉并处理人体的心电图信号(ECG),从而全面反映用户的心脏活动状态。

1万+

AndroidStudio项目之CmakeLists解析

前言 我们在使用AndroidStudio 3.0开发NDK项目的时候CmakeLists.txt将是我们必须要用到的文件,如果你不懂怎么用CmakeLists配置NDK请先看之前的一篇博客:AndroidStudio 3.0 NDK环境搭建,如果已经了解CmakeLists配置NDK项目,ok,那我们接下来步入正题~ CmakeLists源码 CMakeLists.txt # For m...

pvpheroszw的博客 5028

Allegro如何进行四层板板层设计

板层的设计

weixin_42499230的博客 3194

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

下一篇: Fragment 打包遇到的坑
Code_Alone
博客等级 码龄9年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值