先上环境
Java:Java1.8.60
SDK:API -> android-28 Tools -> 26.1.1
NDK:android-ndk-r16b
cocos官方说是以android-ndk-r16b测试的,所以我用了这个
ANT:1.10.7
Python:2.7.9
Android studio :3.5.3
cocos2d-x:cocos2d-x 3.17.2
好吧,就这些了,首先我用cocos new创建项目
用Android studio 3.5.3 打开项目,OK,测试成功!如图
能编译成功中途也遇到了各种坑,先不说这个,再说一说后续开发的问题
比如:
上图就是我自己重新创建了一个MainScene的场景,在HelloWorldScene.cpp中引用这个类,并实例化,如图:
在HelloWorldScene::init()中创建一个sc的MainScene指针
以上代码在VS2015 编译通过,或者创建一个按钮点击事件中创建MainScene场景,并replaceScene函数替换当前场景,VS编译没有问题,但android studio提示MsinScene::createScene()未定义!!!
说到这里,肯定有人会说,你应该是Android.mk没有包含cpp文件吧?
到底是哪里出了错误,为什么要这样对我啊
我在MainScene文件中定义其他的类或者继承类却能通过,如下:
为什么会这样? 定义其他类都没有问题,Scene就搞不了事情了,救命~~啊
我自己搞定了,编译发现gradle.properties 中的编译模式是Cmake,并不是NDK-Build模式,如下:
PROP_BUILD_TYPE=cmake
所以Android.mk文件包含ccp是没有用的,只能在项目根目录的CMakeLists.txt文件里包含cpp文件就可以了,如下图:
纠结好久的问题终于解决了,希望能帮到别人
我用的工具是:
android studio 3.5.3
cocos2d-x 3.17.2
NDK r16b
SDK API 28
SDK build tools 26.1.1
apache ant 1.10.7
python 2.7.9
java jdk1.8.0_91
Visual studio 2015 社区版
这个问题忘记结贴了,Android studio3.5.3是使用cmake编译的,Android.mk已经不用了