【发布时间】:2016-10-10 13:09:49
【问题描述】:
最近我们将 react native 集成到我们的应用中,只需要简单的文本视图。我们在所有类型的设备上都会遇到这种崩溃。
Fatal Exception: com.facebook.react.bridge.JSApplicationIllegalArgumentException: Error while updating property 'flex' in shadow node of type: RCTView
at com.facebook.react.uimanager.ViewManagersPropertyCache$PropSetter.updateShadowNodeProp(ViewManagersPropertyCache.java:109)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater$FallbackShadowNodeSetter.setProperty(ViewManagerPropertyUpdater.java:148)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:52)
at com.facebook.react.uimanager.ReactShadowNode.updateProperties(ReactShadowNode.java:222)
at com.facebook.react.uimanager.UIImplementation.createView(UIImplementation.java:177)
at com.facebook.react.uimanager.UIManagerModule.createView(UIManagerModule.java:222)
at java.lang.reflect.Method.invoke(Method.java)
at com.facebook.react.bridge.BaseJavaModule$JavaMethod.invoke(BaseJavaModule.java:318)
at com.facebook.react.cxxbridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
at com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
at android.os.Looper.loop(Looper.java:234)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196)
at java.lang.Thread.run(Thread.java:818)
Caused by java.lang.IllegalArgumentException: method com.facebook.react.uimanager.LayoutShadowNode.setFlex argument 1 has type float, got java.lang.String
at java.lang.reflect.Method.invoke(Method.java)
at com.facebook.react.uimanager.ViewManagersPropertyCache$PropSetter.updateShadowNodeProp(ViewManagersPropertyCache.java:99)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater$FallbackShadowNodeSetter.setProperty(ViewManagerPropertyUpdater.java:148)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:52)
at com.facebook.react.uimanager.ReactShadowNode.updateProperties(ReactShadowNode.java:222)
at com.facebook.react.uimanager.UIImplementation.createView(UIImplementation.java:177)
at com.facebook.react.uimanager.UIManagerModule.createView(UIManagerModule.java:222)
at java.lang.reflect.Method.invoke(Method.java)
at com.facebook.react.bridge.BaseJavaModule$JavaMethod.invoke(BaseJavaModule.java:318)
at com.facebook.react.cxxbridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
at com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
at android.os.Looper.loop(Looper.java:234)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196)
at java.lang.Thread.run(Thread.java:818)
我们使用 React Native 显示简单的文本
'use strict';
import React from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
class HelloWorld extends React.Component {
render() {
return (
<Text style={{color: 'white'}}>React Native is running</Text>
)
}
}
AppRegistry.registerComponent('8fit', () => HelloWorld);
我们使用 React Native 0.35.0-rc.0,但我们在稳定版 0.33.1 中也遇到了同样的崩溃。
您可以在此处找到完整的崩溃报告。 https://gist.github.com/sealskej/1e2398ef1cd9dda2d1b2630348fa612a
任何有助于解决问题的帮助将不胜感激!
【问题讨论】:
-
嘿,你能用上面的代码重现这个问题吗?我尝试了相同的代码,但没有崩溃。
-
如果您使用的是 flex 关键字,请检查您的 react-native 代码库,并且该值是一个字符串。错误明确指定传递的是字符串值而不是浮点类型。
-
你说
integrate,所以它不是一个纯粹的React Native项目,对吧?代码看起来不错,可能是设置错误。检查你的设置部分,你可能会发现一些东西。 -
@Jickson 我无法重现该问题。我只是看到一些用户随机发生。
-
@Jickson 不,我们根本没有在 js 文件中使用 flex 关键字。
标签: android android-ndk crash react-native