Cocos2dx3.17版使用CMake安卓指南

最近用到了Cocos2dx,3.17,发现网上的指南都几年前的,非常陈旧,
android.mk用起来又不方便,还是喜欢CMake。
先说一下具体环境,使用的是,Windows10 + AndroidStudio3.2.1 + CMake
去官网下载cocos2dx3.17,https://www.cocos.com/download

1、创建新项目

cocos2dx3.x使用python2.7,命令行方式创建新项目,(我用的Anaconda随意切换python2.7/3.6)
命令行进入\tools\cocos2d-console\bin目录,
先看看帮助信息。

图片.png

接下来看看cocos new --help

图片.png

然后执行以下命令
cocos new Demo -p com.demo.mygame -l cpp -d .
-p 包名,-l cpp,-d .,创建在当前路径。


图片.png

2、使用CMake

先看一看目录结构,最常用的就是VS工程proj.win32和AS工程proj.android,


图片.png

1、AS打开proj.android,先把NDK版本设置为r16,不兼容r18的。
2、打开gradle.properties文件,改PROP_BUILD_TYPE=ndk-build为cmake,其他几个宏也可以改为你需要的值。


图片.png

3、打开CMakeLists.txt

include_directories(
        Classes
        ${COCOS2DX_ROOT_PATH}/cocos/audio/include/
)
# add cross-platforms source files and header files 
list(APPEND GAME_SOURCE
     Classes/AppDelegate.cpp
     Classes/HelloWorldScene.cpp
     )
list(APPEND GAME_HEADER
     Classes/AppDelegate.h
     Classes/HelloWorldScene.h
     )

include_directories内添加你的库including,
GAME_SOURCE里添加你的cpp文件,
GAME_HEADER里添加你的h文件。

cocos_build_app(${APP_NAME}
                APP_SRC "${APP_SRC}"
                DEPEND_COMMON_LIBS "cocos2d"
                DEPEND_ANDROID_LIBS "cocos2d_android"
                )

然后这里我没太搞明白,我就在cocos_build_app后面设置依赖库,
link_directories(),target_link_libraries()
4、建立jniLibs目录,
或者改build.gradle,添加jniLibs.srcDir "libs",建立libs目录,
把依赖的so库文件都拷进去,

    sourceSets.main {
        java.srcDir "src"
        res.srcDir "res"
        jniLibs.srcDir "libs"
        manifest.srcFile "AndroidManifest.xml"
        assets.srcDir "../../Resources"
    }

PS:
JNI C++和JAVA相互调用
JAVA调用C++:
static native函数,类名要和函数名一致。
C++调用JAVA:使用JniHelper, FindClass, GetStaticFieldID, GetStaticObjectField, CallVoidMethod, CallStaticVoidMethod,还有各种传参标志。

你可能感兴趣的:(Cocos2dx3.17版使用CMake安卓指南)