XMLHttpRequest Android 平台上引发App崩溃。

  • Creator 版本:2.1.0

  • 目标平台: Android 8.0/Android 6.0

  • 详细报错信息,包含调用堆栈:
    2018-12-08 23:10:54.337 16117-16117/? A/DEBUG: pid: 15979, tid: 16020, name: GLThread 3300 >>> org.cocos2d.helloworld <<<
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #01 pc 002018f4 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (_ZNSt6__ndk111char_traitsIcE6lengthEPKc+20)
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #02 pc 002f8c34 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #03 pc 00429238 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (_ZN14XMLHttpRequest9getHeaderERKNSt6__ndk112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE+9172)
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #04 pc 0042b54c /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (_ZN14XMLHttpRequest10onResponseEPN7cocos2d7network10HttpClientEPNS1_12HttpResponseE+3544)
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #05 pc 00442190 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (ZNSt6__ndk128__invoke_void_return_wrapperIvE6__callIJRNS_6__bindIM14XMLHttpRequestFvPN7cocos2d7network10HttpClientEPNS6_12HttpResponseEEJPS4_RKNS_12placeholders4__phILi1EEERKNSF_ILi2EEEEEES8_SA_EEEvDpOT+680)
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #06 pc 00441d44 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (ZNSt6__ndk110__function6__funcINS_6__bindIM14XMLHttpRequestFvPN7cocos2d7network10HttpClientEPNS5_12HttpResponseEEJPS3_RKNS_12placeholders4__phILi1EEERKNSE_ILi2EEEEEENS_9allocatorISL_EEFvS7_S9_EEclEOS7_OS9+68)
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #07 pc 0060d62c /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (ZNKSt6__ndk18functionIFvPN7cocos2d7network10HttpClientEPNS2_12HttpResponseEEEclES4_S6+112)
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #08 pc 00615ae4 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #09 pc 00615a70 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #10 pc 006158c0 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #11 pc 0023564f /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (_ZNKSt6__ndk18functionIFvvEEclEv+38)
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #12 pc 0031d04c /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (_ZN7cocos2d9Scheduler6updateEf+1272)
    2018-12-08 23:10:54.341 16117-16117/? A/DEBUG: #13 pc 00231d23 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/lib/arm/libcocos2djs.so (Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeRender+554)
    2018-12-08 23:10:54.342 16117-16117/? A/DEBUG: #14 pc 00006f27 /data/app/org.cocos2d.helloworld-pxoR7HoPmJ0fX9wLCgWwWQ==/oat/arm/base.odex (offset 0x6000)
    2018-12-08 23:10:54.991 1450-1892/? E/InputDispatcher: channel ‘e86fda2 org.cocos2d.helloworld/org.cocos2dx.javascript.AppActivity (server)’ ~ Channel is unrecoverably broken and will be disposed!
    2018-12-08 23:10:54.993 768-850/? E/SurfaceFlinger: Failed to find layer (SurfaceView - org.cocos2d.helloworld/org.cocos2dx.javascript.AppActivity#0) in layer parent (no-parent).
    2018-12-08 23:10:54.994 768-1566/? E/SurfaceFlinger: Failed to find layer (Background for - SurfaceView - org.cocos2d.helloworld/org.cocos2dx.javascript.AppActivity#0) in layer parent (no-parent).

  • 重现方式:每次进行网络请求

  • 之前哪个版本是正常的 :

  • 手机型号 :xiaomi mix 2

  • 手机浏览器 :

  • 编辑器操作系统 :macOS

  • 编辑器之前是否有其它报错 :

  • 出现概率:100%

  • 额外线索:
    demo.zip (1.7 MB)

1赞

@leda 你好,能够帮我看看不?

算了,还是退回到 cocos creator 2.0.5,这个版本网络请求没有问题。

这个可以提供下简单的服务端的应答代码?看来是服务端的返回的数据导致崩溃的,具体原因需要跟踪下才知道。

@huanxinyin
{
“status”: 0,
“message”: “登录成功”,
“data”: {
“userId”: “4d8f702e-5a9a-47cb-b434-c5876a24ead6”,
“userToken”: “eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMzYwMDAwMDAwMSIsImNyZWF0ZWQiOjE1NDQ1NzA5MjUxMTQsImV4cCI6MTU0NzE2MjkyNX0.v1agEuUcATbPv4ZoHXE4xMI6rJpFdDrxKEmFjRl-3VgnhIFv-tO7DzavRW1IW0vmMytql0SFMdbBVzFlXjiWCg”,
“accessToken”: “1544570925218”
}
}

你看这样行不?还需要我提供什么东西不?

我这边使用vivo32 android8.0做了测试,没有出现崩溃问题,你的服务端使用什么框架?是否可以使用node做个简单的测试看看。

@huanxinyin 我用的是springboot,我的服务在线上,是能够访问的。这样你也方便定位问题的呢。我使用 cocos creator 2.0.5 都没有问题的呢。

这里加一句,因为你协议返回的是415,所以没有数据信息,这里出现不安全错误,临时先这样修改下。

Android依赖的第三方库解析HTTP头部导致statusText丢失,已在 https://github.com/cocos-creator/cocos2d-x-lite/pull/1629 作了兼容处理。

cocos creator 2.1为适配web标准作了修改,所以和2.0.5的行为有差异。

我的天呢,我今天掉这个坑里了,,,我光在我身上找问题了。花了好几小时 看XMLHttpRequest 的文档。。。。
还好搜索了下论坛。。。。

:sob: :sob: :sob:

说多了都是泪啊。

请问这里具体需要什么样格式的返回?
我使用的Php的后端提供的接口

我这样格式的返回还是不行

根据这里的说明,手动修复吧。

1赞

mark

这个问题2.0.10没有修复吗 我也是http请求 模拟器崩溃
XMLHttpRequest.withCredentials isn’t implemented on JSB!

要手动修复吗