cannot locate symbol "rand" referenced by "libcocos2dlua.so"

targetSdkVersion 26(即打包命令里面就是 android -26)
打包后,真机运行安卓4.4及其一下版本的手机会崩溃

在网上和论坛上找到很多答案。

尝试过跟换ndk,当前使用的ndk是android-ndk-r14b,更换android-ndk-r9d问题依旧存在

最有效的就是targetSdkVersion 换成19
确实。将targetSdkVersion换成19后。这个问题迅速得到了修复

但令人头痛的是谷歌商店出了新通知
所有游戏需要在今年11月份前,将targetSdkVersion设定至少26版本。
所以这个问题必须得到解决。请问有没有大大,有解决方案的。

我的cocos2d-x版本是3.15
minSdkVersion 15targetSdkVersion 26

换一款编译器?我记得这个 rand 函数有些编译器是有问题的。

结贴了。。。

问题确实是这样的。也确实存在。其实最大的问题的就是targetSdkVersion 换了高版本后。低版本的手机支持问题

找到的答案基本都是把targetSdkVersion版本换成19

这个方案谷歌不认可。。翻找了一些国外资料。发现了问题可能是出在非targetSdkVersion的其他编译需要的版本。。

这里我的解决方案是,主工程,选用targetSdkVersion。。。其他非主工程,比如载入的第三方,依旧沿用自身原本的targetSdkVersion

主工程处标记APP_PLATFORM=android-19 (我用的是as)
打包命令
cocos --agreement n compile -p android -j 4 -m release --compile-script 0 --android-studio
即可

问题解决。且谷歌上传不再报警告,低版本安卓不崩溃
至于为什么,来个大神解答一下

1赞

按照 Google 的说法,target sdk version 和 compile sdk version 应该保持最新,mini sdk version 设置多少就向下兼容到多少。实际的测试结果,的确和 Google 说的有差异啊

请问怎么设置cocos2d.so打包的targetSDKversion呢?我也遇到同样的问题。。。用的是creator的一键打包

问题解决了,我是把/Applications/CocosCreator.app/Contents/Resources/cocos2d-x/cocos/platform/android/libcocos2dx/build.gradle中的targetSdkVersion改为19就可以了
正常creator中打包设置的APIlevel是27
目前看下来几台4.x,5.x的手机都没闪退

1赞