cocos2d-x 3.11 安卓编译失败

看了一下,jni目录里的Android.mk确实本身有这句,但cocos\scripting目录里没有Android.mk文件,倒是上一层目录cocos里有一个Android.mk,但这个文件里面也已经有了LOCAL_ARM_MODE := arm,昨晚在某个地方发现了没有这句的我自己给添上了,但并不能解决编译报错的问题……所以我觉得现在这个问题不一定跟LOCAL_ARM_MODE := arm有关

编译 C++ Lua 还是 JS ?

javascript(回帖非要6个字= =)

可以给我一个示例工程嘛?

额……因为我是直接用以前的旧工程(用3.11的命令行创建js工程,然后把旧工程的res、src、project.json、main.js拷过去覆盖)遇到的这个问题,没有单独开过一个所谓实例工程,所以没法提供

这个问题的核心原因是 Android 编译过程中,部分使用 thumb 模式,部分使用 arm 模式,relocation overflow 应该是由于 thumb 模式是 16 位,链接地址不足导致的错误。

可以把编译过程的 log 打出来,找一下其中使用 thumb 模式的模块,修改为 arm 模式

一开始我用的是ndk r10c,然后报错的目录名中含有“3d”,后来我仅仅只是更换了ndk为r10e之后报错的目录名又变了(并且找不到之前带有3d的那些名字)

把编译的完整 log 发一下吧,我看看

好的,不过现在没法传,我晚上下班回家用两个版本的ndk再编一次。

@panda 还请帮忙顺便看看这个问题,一样的错误提示:
http://forum.cocos.com/t/cocos2d-x3-11/36518

应该是这个问题了,不过3.10都没有这个问题,3.11突然就出现了,这感觉不太好。

主要是这个问题不仅和编译配置有关系,还和系统环境有关,有些机器可以重现有些不行,我们测试机器刚好都没有出现这个问题,还以为没问题,可能是哪个模块忘记添加 LOCAL_ARM_MODE 标签

结合您白天说的跟楼上那位朋友的方法,我给cocos\editor-support\cocostudio里面的Android.mk加上arm之后编译成功了,谢谢你们(手动@GameArt)

谢谢,我也会修改一下引擎中的

3.11.1发布了,我本以为修改了,结果下下来苦哈哈的让电脑编译了差不多一个多小时,得到的结果和之前一样,不知道为什么,感觉心里似乎突然有点失落,哎。。。也许是我期望太高了

官网下载页面里,3.11.1的更新内容本来就只有一条“支持ipv6”嘛……别太伤心,都被坑习惯了

editor support 部分中相关的 android.mk 在 v3.11.1 已经修改了,@yixiaoqingyuz 如果你那边还有错误,可能是其他地方引起的,还麻烦把完整的编译 log 发出来

其实我遇到的错误跟我前面提到还是一样的。

经过上次折腾以后我就把之前下载的3.11.1删除了,我打算把3.10当成是我最后使用的一个cocos2d-x版本,我电脑上已经装好unity了,godot也准备了一份。本来我打算cocos2d-x再怎么搞都跟我没关系了,我已经受够了,然而,毕竟我可以说是跟着cocos2d-x一起成长的,中英文论坛我都逛,cocos2d-x团队经常活跃的几个人我差不多都清楚,有几个人我印象不错,其中一个就是你,所以当看到你说editor support 部分中相关的 android.mk 在 v3.11.1 已经修改了的时候我是有点失望的,为什么呢,因为这个错误我可以100%确定是cocos2d-x-3.11.1/tools/simulator/frameworks/runtime-src/proj.android/…/…/…/…/…//tools/simulator/libsimulator/的android.mk缺少LOCAL_ARM_MODE := arm引起的,我在最开始的那个反馈贴在里就已经把错误信息贴出来了,然而你们显然并没有把这个事情当回事,如果是我遇到有用户反馈这个问题而我又知道这是什么原因引起的话我会把所有的android.mk都过一遍看看是否都是一样的设置,而不是逐一问用户是不是这个是不是那个。

此时此刻这个问题你们处不处理对我来讲已经不重要了,但不管怎么样,看到你的回复我还是重新下载了一份cocos2dx-3.11.1,然后重新执行一遍gen-libs,错误依然跟我第一次反馈这个问题时一样,下面是错误信息:
[armeabi] Compile++ thumb: cocos2dxandroid_static <= Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp
At global scope:
cc1plus: warning: unrecognized command line option “-Wno-extern-c-compat”
[armeabi] Compile++ thumb: cocos2dxandroid_static <= Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
[armeabi] Compile++ thumb: cocos2dxandroid_static <= Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp
[armeabi] Compile++ thumb: cocos2dxandroid_static <= JniHelper.cpp
[armeabi] Compile++ thumb: cocos2dxandroid_static <= TouchesJni.cpp
[armeabi] Compile thumb : cpufeatures <= cpu-features.c
[armeabi] StaticLibrary : libluacocos2d.a
[armeabi] StaticLibrary : libsimulator.a
[armeabi] StaticLibrary : libjscocos2d.a
[armeabi] StaticLibrary : liblocalstorage.a
[armeabi] StaticLibrary : libcocostudio.a
[armeabi] StaticLibrary : libcocosbuilder.a
[armeabi] StaticLibrary : libcocos3d.a
[armeabi] StaticLibrary : libspine.a
[armeabi] StaticLibrary : libui.a
[armeabi] StaticLibrary : libcocosdenshion.a
[armeabi] StaticLibrary : flatbuffers.a
[armeabi] StaticLibrary : libextension.a
[armeabi] StaticLibrary : libaudioengine.a
[armeabi] StaticLibrary : libbox2d.a
[armeabi] StaticLibrary : libnetwork.a
[armeabi] StaticLibrary : libcocos2dxinternal.a
[armeabi] StaticLibrary : librecast.a
[armeabi] StaticLibrary : libbullet.a
[armeabi] StaticLibrary : libluacocos2dandroid.a
[armeabi] StaticLibrary : libjscocos2dandroid.a
[armeabi] StaticLibrary : libcocos2dandroid.a
[armeabi] StaticLibrary : libcpufeatures.a
[armeabi] SharedLibrary : libcocos2dlua.so
/Users//Desktop/cocos2d-x-3.11.1/tools/simulator/frameworks/runtime-src/proj.android/…/…/…/…/…//tools/simulator/libsimulator/proj.android/…/lib/ProjectConfig/ProjectConfig.cpp:24: error: relocation overflow in R_ARM_THM_CALL
/Users/
/Desktop/cocos2d-x-3.11.1/tools/simulator/frameworks/runtime-src/proj.android/…/…/…/…/…//tools/simulator/libsimulator/proj.android/…/lib/ProjectConfig/ProjectConfig.cpp:26: error: relocation overflow in R_ARM_THM_CALL
collect2: error: ld returned 1 exit status
make: *** [obj/local/armeabi/libcocos2dlua.so] Error 1
make: Leaving directory `/Users/***/Desktop/cocos2d-x-3.11.1/tools/simulator/frameworks/runtime-src/proj.android’
执行命令出错,返回值:2。
执行命令出错,返回值:14。

还是那句话,这个错误你们处理不处理对我来讲已经不重要了,你说让我贴log我就特意下载一份重新尝试一遍把log贴出来给你看,因为不管怎么样我对cocos2d-x还是有很深的感情,不希望它走着走着就没了。不出意外的话这应该是我最后一次来论坛里表达自己的不满了,毕竟cocos2d-x团队为大家提供了一个这么好的工具,简化了这么多流程,我有什么资格好抱怨的呢?

最后,感谢团队每一个成员的付出,祝你们都有一个辉煌的未来。

@panda @natural-law 能否确认一下?

感觉cocos是没搞头了,不过没到黄河心不能死,我等奇迹出现!:grin: