React-native android fetch方法崩溃应用程序

时间:2015-11-29 16:16:32

标签: android curl fetch react-native emoji

我试过卷曲我的API:

  

curl http://localhost:8080/0/me -H"授权:xxx"

     

curl http://localhost:8080/0/me/contactlist -H"授权:xxx"

每件事情都很好(JSON Content-Length中的响应:1014 200OK 20ms)

但是在Genymotion第一个API工作正常,第二个总是崩溃错误(不幸的是app停止了):(

编辑:添加logcat(对不起,我忘记了adb logcat)

F/fbassert( 3233): Assert (/Users/mkonicek/code/react-native/ReactAndroid/src/main/jni/first-party/jni/LocalString.cpp:36): 4 byte utf-8 encodings only valid for up to 21 bits
F/libc    ( 3233): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xdeadb00c in tid 3262 (imit=5&offset=1)
I/DEBUG   (   87): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (   87): Build fingerprint: 'generic/vbox86tp/vbox86tp:5.1/LMY47D/buildbot06101042:userdebug/test-keys'
I/DEBUG   (   87): Revision: '0'
I/DEBUG   (   87): ABI: 'x86'
I/DEBUG   (   87): pid: 3233, tid: 3262, name: imit=5&offset=1  >>> com.awesomeproject <<<
I/DEBUG   (   87): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xdeadb00c
I/DEBUG   (   87): Abort message: 'Assert (/Users/mkonicek/code/react-native/ReactAndroid/src/main/jni/first-party/jni/LocalString.cpp:36): 4 byte utf-8 encodings only valid for up to 21 bits'

1 个答案:

答案 0 :(得分:0)

好的,我只知道一个问题。

在JSON响应中有表情符号字符,当js尝试解码时可能会导致问题。但是不知道为什么它不能被Promise抓住,太糟糕了。

解决方案:

服务器端&gt;在编码JSON之前解析为url转义字符串

客户端&gt;使用内置decodeURI()

解析值