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 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
    • ¥15 教务系统账号被盗号如何追溯设备
    • ¥20 delta降尺度方法,未来数据怎么降尺度
    • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
    • ¥15 再不同版本的系统上,TCP传输速度不一致
    • ¥15 高德地图点聚合中Marker的位置无法实时更新
    • ¥15 DIFY API Endpoint 问题。
    • ¥20 sub地址DHCP问题