React native Android SyntaxError:尝试重新定义属性'key'

时间:2016-04-06 09:07:41

标签: java android adb react-native genymotion

运行react-native run-android后,我在仿真器(经测试的Genymotion和谷歌股票仿真器)和物理设备(三星S4)上出现以下错误:

enter image description here

错误输入: java.util.concurrent.ExcecutionException: java.lang.RuntimeException: SyntaxError: Attempted to redefine property 'key'. (http://192.168.50.37:8081/index.android.bundle?platform=android&dev=true&hot=false:72450)

  • this stackoverflow discussion中,Genymotion发生了类似的错误(也是java.util.concurrent.ExecutionException)但是那里的解决方案对我没有帮助,即adb reverse tcp:8081 tcp:8081
  • 我还尝试将开发设置/ Debug server host & port for device更改为0.0.0.0:8081而不是MY_IP:8081,其中MY_IP是我的电脑的IP。

我正在运行反应原生0.22.2

3 个答案:

答案 0 :(得分:17)

问题是:key在某个视图中定义了两次,例如

<View key={index} key={other} ... />

所以只需删除其中一个key属性。

找到解决方案的中间步骤:

首先,当在React Native菜单中按Start Chrome Debugging时,应用程序将再次运行,但错误将显示在相应浏览器选项卡的控制台中。 然后它显示了更好的错误消息。

奇怪的是,iOS上没有出现此错误。

答案 1 :(得分:2)

我有相同的错误,但使用不同的关键字

在我的情况下,关键字在我的css 样式属性中声明了两次。

let styles = StyleSheet.create({
    keyword:{}, 
    keyword:{}
});

iOS上没有崩溃或警告,但导致Android崩溃。

答案 2 :(得分:1)

在v0.49上遇到相同的错误。花了很多时间,终于发现我的css声明中有重复:

&#xA;&#xA;
  logo:{&#xA;弯曲:3,&#XA;身高:120,&#xA; marginBottom:10,&#xA;},&#xA;&#xA; logo:{&#xA; ... styText,&#XA; marginTop:10&#xA;},&#xA;  
&#xA;&#xA;

刚刚删除了第二个声明修复了错误。

&#xA;