cocos编译android 指定---ap android-21的问题

引擎开发的工作组的大大们,碰到一个问题,如果解决?

环境:cocos2d-x 3.13.1
NDK: android-ndk-r11b
Windows-10 64位操作系统

现在项目中,cocos compile -p android -m debug --no-apk --ap android-21 用此命令编译出来的SO文件,可以顺利的跑在android6.0+的机器上,,但是在android 4.X的机器上crash,报:failed: dlopen failed: cannot locate symbol “rand” referenced by “libcocos2dlua.so”.

如果我用:cocos compile -p android -m debug --no-apk --ap android-19,编译,又会导致编译报错,相关信息:libcurl.a(libcurl_la-netrc.o):netrc.c:function Curl_parsenetrc: error: undefined reference to ‘getpwuid_r’

请问如何解决?麻烦给下解答.

我用–ap android-13都没有问题,19的话就更不会有问题了。你换个NDK版本试试,比如最新的NDK r13。

Minggo,你好,换成r13b,也是一样的报错。同时我怀疑我的项目有问题。我刚才用cocos new命令行创建了一个。竟然也是同样问题。用cocos compile -p android -m debug --no-apk --ap android-21 ,就可以编译通过
还会有其他设置影响编译吗?
报错信息如下:

你能给个重现的例子吗?默认创建出来的工程应该没有链接CURL了。

空项目,是srand错。跟我们自己的项目,srand错误一样。这是空项目的报错:

关键是空项目也太大。我怎么传上来呢?

我直接用cocos new -l lua -d c:\cocos-samples CocosGameLua创建的,没有做任何修改。压缩包文件有点大。如何传上来呢,空项目的完整报错在楼上

来结下帖,之前的引擎版本cocos2d-x 3.13.1是2016-9-18号下载的。我把之前下载的删除了。刚去cocos官网下载了最新版本。创建空项目可以了,没有出现上面的报错。下面我直接Merge进项目了。谢谢你。minggo

minggo,你好。麻烦帮看下,确认了,新版本也不行。只要一引用libcurl,库就存在这个问题,

命令行:

cocos compile -p android -m debug --no-apk --ap=android-19 失败
cocos compile -p android -m debug --no-apk --ap=android-21 成功

NDK:r13b
Windows 10 64位:
下面是一个简单的实例项目:实例项目.zip (46.5 KB)

错误提示如下:

根据这个的解答:http://stackoverflow.com/questions/36083102/android-21-static-build-of-libcurl-with-openssl,换成android-21,可以工作,但是现在大部分的设备都是Android 4.0+,用android-21编译的SO,运行在这些设备上直接Crash

嗯,重现了。
我看一下是什么问题。

好的,麻烦了,这几天一直是怀疑自己的环境有问题,我重装电脑还是一样的错误。

可能是之前的curl库使用了高版本编译,我用android-19重新编译了curl解决了链接错误,你试试:

链接:http://share.weiyun.com/270efcdf6a486debd2d19b9b15f7866c (密码:aMxjtU)

直接下载覆盖external/curl/prebuilt/android目录

谢谢,用android-19,可以编译通过了。

请问下,这个问题在cocos creator版本修复了嘛? 我们现在遇到了同样的问题, 程序在android 4.4设备上崩溃, 报: failed: dlopen failed: cannot locate symbol “rand” referenced by “libcocos2dlua.so”.
我们用的creator 1.3.3版本,导出android项目的时候, api level只能选择,21,22,23. 我们选择的21. 是不是如果能选19就可以了?
另外cocos/platform/android/java/project.properties文件里写的是
# Project target.
target=android-10

@minggo ??

creator 1.3.3我不确定是否也更新了curl,应该是没有。你选择19应该没问题的。
@youyou

这个是默认值,你选择的话就覆盖了。

谢谢回复,问题是ide里只有21,22,23而且必须选一个… @minggo

那你也可以自己用cocos命令编译,而不是界面操作。

链接失效了,麻烦帮我也发一个

太久了,你直接到这里下载吧。

我下载了cocos2d-x-3rd-party-libs-bin 替换掉curl里面prebuilt/android 以后报错如下

请问是什么情况啊