转载cocos3.17cmake打包

<div class="show-content-free">
        <p>最近用到了Cocos2dx,3.17,发现网上的指南都几年前的,非常陈旧,<br>

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)
命令行进入 oolscocos2d-consolein目录,
先看看帮助信息。

10186620-f4b5410b7dfec61c.png
图片.png

接下来看看cocos new --help

10186620-fb50fdb23dece573.png
图片.png

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


10186620-4682d8b061671f27.png
图片.png

2、使用CMake

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


10186620-2f6ffb29506a7128.png
图片.png

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


10186620-ae4623e4eaaed363.png
图片.png

3、打开CMakeLists.txt

  1. include_directories(
  2. Classes
  3. ${COCOS2DX_ROOT_PATH}/cocos/audio/include/
  4. )
  5. # add cross-platforms source files and header files
  6. list(APPEND GAME_SOURCE
  7. Classes/AppDelegate.cpp
  8. Classes/HelloWorldScene.cpp
  9. )
  10. list(APPEND GAME_HEADER
  11. Classes/AppDelegate.h
  12. Classes/HelloWorldScene.h
  13. )

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

  1. cocos_build_app(${APP_NAME}
  2. APP_SRC "${APP_SRC}"
  3. DEPEND_COMMON_LIBS "cocos2d"
  4. DEPEND_ANDROID_LIBS "cocos2d_android"
  5. )

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

  1. sourceSets.main {
  2. java.srcDir "src"
  3. res.srcDir "res"
  4. jniLibs.srcDir "libs"
  5. manifest.srcFile "AndroidManifest.xml"
  6. assets.srcDir "../../Resources"
  7. }

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

      </div>
          </div>

转自:https://blog.csdn.net/weixin_34268753/article/details/87055365

原文地址:https://www.cnblogs.com/zhangthree/p/10529156.html