【android studio】添加C/C++支持的两种方式(cmake)

文章目录

  • 1、创建项目时添加
  • 2、创建完普通项目再添加支持
    • 设置app/build.gradle
    • 创建CMakeLists.txt
    • gradle sync build同步

1、创建项目时添加

首先在AndroidStudio初始界面Start a new project
【android studio】添加C/C++支持的两种方式(cmake)_第1张图片
接着直接点击 Native C++
【android studio】添加C/C++支持的两种方式(cmake)_第2张图片
之后可以设置C++的标准,我们选择Default【android studio】添加C/C++支持的两种方式(cmake)_第3张图片

在/app/src/main/cpp下是自动生成的native-lib.cpp,在这里实现native方法

2、创建完普通项目再添加支持

如果嫌它总是会自动生成一些不是想要的东西(native-lib.cpp),你还得自己删除,显得累赘
于是我们着手自己添加C/C++支持
一样,点击普通项目生成
【android studio】添加C/C++支持的两种方式(cmake)_第4张图片
这是项目结构
【android studio】添加C/C++支持的两种方式(cmake)_第5张图片

设置app/build.gradle

打开app下的build.gradle
【android studio】添加C/C++支持的两种方式(cmake)_第6张图片
defaultConfig{}里添加

externalNativeBuild{
	cmake{
		cppFlags ""//这里选择cpp设置 
		//如果要添加C++11支持就是 cppFlags "-std=c++11"
	}
}

android{}里添加

externalNativeBuild{
	cmake{
		path "CMakeLists.txt"
		//相对于build.gradle的路径,如果是同一个目录,直接写"CMakeLists.txt"(完全一致),如果在当前目录xxx下
		//则为"xxx/CMakeLists.txt"
	}
}

【android studio】添加C/C++支持的两种方式(cmake)_第7张图片

创建CMakeLists.txt

和刚才说的一样,创建的位置要和path里写的一致
我选择创建在app下
【android studio】添加C/C++支持的两种方式(cmake)_第8张图片
【android studio】添加C/C++支持的两种方式(cmake)_第9张图片
注意 log和库不要写反,是把log链接到libMyLib(因为自己的类是SHARED本身并不包含log的实现)
用add_library创建自己的库,第一行名称,第二行类型,第三行是相对路径(可以随便写,要保持一致)
target_link_libraries是链接log库与我的库到程序中
具体可以看 cmake学习笔记之add_library、target_link_libraries和link_directories

gradle sync build同步

在这里插入图片描述
每次修改配置文件都会出现这个提示,点击Sync Now就可以了
再看项目目录,蓝色文件夹(如java)表示已添加进项目
【android studio】添加C/C++支持的两种方式(cmake)_第10张图片
可是cpp文件夹还是灰的怎么办
别急,点击菜单栏,按顺序执行
1、Build->Rebuild-> Rebuild Projects
2、Build->Rebuild-> Linked C++ Projects

可以看到cpp已经变蓝了
【android studio】添加C/C++支持的两种方式(cmake)_第11张图片
试着在MainActivity中添加本地方法并在main.cpp里添加一个实现
这里是布局文件
【android studio】添加C/C++支持的两种方式(cmake)_第12张图片
主类
【android studio】添加C/C++支持的两种方式(cmake)_第13张图片
cpp文件
【android studio】添加C/C++支持的两种方式(cmake)_第14张图片
一个简单的实现10以内随机数的实例
【android studio】添加C/C++支持的两种方式(cmake)_第15张图片

这是摔坑好几次总结出来的

你可能感兴趣的:(android,android,cmake)