### Crash日志
```
Process: com.apex.livebos.stock, PID: 26510
java.lang.StackOverflowError
at android.text.MeasuredText.addStyleRun(MeasuredText.java:172)
at android.text.MeasuredText.addStyleRun(MeasuredText.java:204)
at android.text.StaticLayout.generate(StaticLayout.java:295)
at android.text.StaticLayout.(StaticLayout.java:150)
at android.text.StaticLayout.(StaticLayout.java:100)
at android.text.StaticLayout.(StaticLayout.java:78)
at android.text.StaticLayout.(StaticLayout.java:58)
at com.facebook.react.views.text.ReactTextShadowNode$1.measure(ReactTextShadowNode.java:229)
at com.facebook.csslayout.CSSNode.measure(CSSNode.java:137)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:294)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
at com.facebook.cssl
```
### 问题表现栈溢出.### 解决方法google
* https://github.com/facebook/react-native/issues/5997
* https://github.com/facebook/react-native/pull/6817
*修改源码并编译:
参考: https://github.com/facebook/react-native/pull/6817/commits/797af3f237c430aa6081f3d88018ed1cd6762506
### 编译源码(目标是自己的工程直接引用node_module/ReactAndroid)
* 参考: http://facebook.github.io/react-native/docs/android-building-from-source.html#content
* 直接使用node_module/ReactAndroid下的文件, 不要自己clone, clone代码编译有问题;
* 修改android/build.gradle
```
...
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
classpath 'de.undercouch:gradle-download-task:2.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
...
```
* 自己工程依懒:ReactAndroid
* 修改android/settings.gradle
```
...
include ':ReactAndroid'
project(':ReactAndroid').projectDir = new File(
rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
...
```
* 修改android/app/build.gradle把原来引用react-native包换成ReactAndroid库工程;
compile 'com.facebook.react:react-native:0.16.+' ==> compile project(':ReactAndroid'):
```
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:multidex:1.0.1'
compile project(':ReactAndroid')
compile 'com.umeng.analytics:analytics:latest.integration'
compile(project(':ReactNativeBarcodescanner')) {
exclude group: 'com.facebook.react', module: 'react-native'
}
compile(project(':react-native-code-push')) {
exclude group: 'com.facebook.react', module: 'react-native'
}
}
```
* 其它相关lib工程如果引用了ReactAndroid工程
* 删除ReactAndroid/build/intermediates/assets/androidTest目录, 否则npm start及打包js时报如下错误:
```
ailed to build DependencyGraph: Naming collision detected: /Users/wv/work/d2papp/src/master/node_modules/react-native/ReactAndroid/build/intermediates/assets/androidTest/debug/ScrollViewTestModule.js collides with /Users/wv/work/d2papp/src/master/node_modules/react-native/ReactAndroid/src/androidTest/assets/ScrollViewTestModule.js
Error: Naming collision detected: /Users/wv/work/d2papp/src/master/node_modules/react-native/ReactAndroid/build/intermediates/assets/androidTest/debug/ScrollViewTestModule.js collides with /Users/wv/work/d2papp/src/master/node_modules/react-native/ReactAndroid/src/androidTest/assets/ScrollViewTestModule.js
at HasteMap._updateHasteMap (HasteMap.js:132:13)
at HasteMap.js:103:28
at tryCallOne (/Users/wv/work/d2papp/src/master/node_modules/promise/lib/core.js:37:12)
at /Users/wv/work/d2papp/src/master/node_modules/promise/lib/core.js:123:15
at flush (/Users/wv/work/d2papp/src/master/node_modules/asap/raw.js:50:29)
at nextTickCallbackWith0Args (node.js:452:9)
at process._tickCallback (node.js:381:13)
```