文章目录
- 1、创建项目时添加
- 2、创建完普通项目再添加支持
-
- 设置app/build.gradle
- 创建CMakeLists.txt
- gradle sync build同步
1、创建项目时添加
首先在AndroidStudio初始界面Start a new project
接着直接点击 Native C++
之后可以设置C++的标准,我们选择Default
在/app/src/main/cpp下是自动生成的native-lib.cpp,在这里实现native方法
2、创建完普通项目再添加支持
如果嫌它总是会自动生成一些不是想要的东西(native-lib.cpp),你还得自己删除,显得累赘
于是我们着手自己添加C/C++支持
一样,点击普通项目生成
这是项目结构
设置app/build.gradle
打开app下的build.gradle
在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"}
}
创建CMakeLists.txt
和刚才说的一样,创建的位置要和path里写的一致
我选择创建在app下
注意 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)表示已添加进项目
可是cpp文件夹还是灰的怎么办
别急,点击菜单栏,按顺序执行
1、Build->Rebuild-> Rebuild Projects
2、Build->Rebuild-> Linked C++ Projects
可以看到cpp已经变蓝了
试着在MainActivity中添加本地方法并在main.cpp里添加一个实现
这里是布局文件
主类
cpp文件
一个简单的实现10以内随机数的实例
这是摔坑好几次总结出来的