上线项目用cc.loader图片奔溃在android平台,急急急!

定位到这一句:Downloader::createDownloadFileTask
下面是崩溃信息:
backtrace:
native: pc 0000000000b31fd8 /data/app/com.-1/lib/arm/libcocos2djs.so
native: pc 0000000000b330f8 /data/app/com.-1/lib/arm/libcocos2djs.so (_ZN7cocos2d7network17DownloaderAndroidC1ERKNS0_15DownloaderHintsE+412)
native: pc 0000000000b31508 /data/app/com.-1/lib/arm/libcocos2djs.so (_ZN7cocos2d7network10DownloaderC1ERKNS0_15DownloaderHintsE+72)
native: pc 0000000000b317ac /data/app/com.-1/lib/arm/libcocos2djs.so (_ZN7cocos2d7network10DownloaderC1Ev+112)
native: pc 000000000035cadc /data/app/com.-1/lib/arm/libcocos2djs.so (_ZN23__JSDownloaderDelegator13startDownloadEv+136)
native: pc 0000000000e0c8e3 /data/app/com-1/lib/arm/libcocos2djs.so
native: pc 0000000000016f23 /system/lib/libc.so (_ZL15__pthread_startPv+30)
native: pc 0000000000014f43 /system/lib/libc.so (__start_thread+6)

你在多贴点报错信息吧。logcat的
就这些信息反正我是看不出来哪里有问题

在谷歌play上的只有这些信息。(ZN7cocos2d7network17DownloaderAndroidC1ERKNS015DownloaderHintsE+412)对应的就是这句DownloaderAndroid::DownloaderAndroid(const DownloaderHints& hints),,
pc 0000000000b31fd8 /data/app/com.-1/lib/arm/libcocos2djs.so对应的就是Downloader::createDownloadFileTask这句了。
所以引擎怎么导致了不清楚。只有玩家那边出现了

猜测同时多个cc.loader去加载玩家头像会出现,主要我这边没有复现。但是线上谷歌play却都是这个奔溃日志

自顶asdf

确实是加载头像时出现的,发一下你加载远程头像的代码看看

没什么特别的。
cc.loader.load({ url: data.icon, type: “jpg” }, function (err, tex) {
if (err) {
cc.error(err.message || err);
return;
}
if(!cc.isValid(self.head)){
return;
}
var spFrame = new cc.SpriteFrame(tex);
self.head.spriteFrame = spFrame;
});

就这样一句。不知道是不是排行榜加载十几个的原因,我这边没有复现。@panda

安卓下各种崩溃,creator太不成熟了

有问题,一个个解决

代码没什么问题

试试看将这行代码恢复(取消注释)

https://github.com/cocos-creator/cocos2d-x-lite/blob/develop/cocos/scripting/js-bindings/manual/extension/jsb_cocos2dx_extension_manual.cpp#L952

只能等下次发版本,再改下看

这行注释,加不加的影响是什么,取消注释后,会不会带来其他问题,所以你们把它注释了

不应该加注释,它可以保障回调在 GL 线程运行,也是论坛反馈我才发现被注释了,查历史追溯到这个仓库创建的时候,所以现在也不清楚当时为什么被人注释掉

所以在新版本的creator,你们也会取消注释吗

我们发现这个问题是在ios上用横屏的方式拍照并截取需要部分作为头像上传到服务器,然后在下载这张图片的时候ios崩溃了。一开始调试的时候也是通过打开那段注释来解决问题。但后面又发现一个其他的崩溃。也是在下载完成之后回调js层的时候发生的。文件是cocos/network/CCDownloader-apple.mm 行号大概在445-447 这个位置。貌似是这个数据拷贝的问题。我们现在是改了这个地方的代码。增加了一个函数-(int64_t)transferData: (std::vector&)data;然后把数据拷贝那段改调这个新函数。之后没再出问题(因为时间问题,没有具体深究)。

具体问题:希望官方同学分析下吧。