Memoselect 2019-12-13 15:00
浏览 927

Android Studio 3.5.2 / 3.5.3 cocos2d-x 3.17.2 android编译问题

先上环境
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已经不用了

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序