不变违规:requireNativeComponent:在UIManager中找不到“ AIRMap”。无法解决?

时间:2019-03-17 22:06:21

标签: react-native

我遵循了react-native-maps文档上的指南:我得到了错误。

我在stackoverflow和google上到处都是,但找不到解决方法。

我尝试了所有可以在论坛上找到的答案,但仍然出现错误。

错误:

不变行为:requireNativeComponent:在UIManager中找不到“ AIRMap”。

我的代码:

import React from 'react';
import MapView from 'react-native-maps';
import { StyleSheet } from 'react-native';

export default class App extends React.Component {
  constructor() {
    super();
    this.state = {};
  }

  render() {
    return (
      <MapView
         style = {styles.map}
         showsUserLocation = {false}
         followUserLocation = {false}
         zoomEnabled = {true}
      />
   )
  }
}

const styles = StyleSheet.create ({
  map: {
     height: 400,
     marginTop: 80
  }
})

5 个答案:

答案 0 :(得分:0)

尝试一下:

打开xcode项目>您的项目>构建阶段>链接二进制文件>删除libAirMaps.a>  然后再次添加>检查它是否有效... check image for detailed instruction

编辑: 如果您已经安装了react-native-maps,请尝试手动添加AirMapsLib。按照此图像上的说明进行操作。之后,重试以上说明。 image instruction 1 here!

image instruction 2 here!

答案 1 :(得分:0)

请检查这两个链接,为您提供有关在iOS和Android中对本机地图集成进行反应的详细信息

Map integration link 1 for Android & ios

Map integration link 2

有时候iOS库无法正确链接,因此您需要手动将库添加到Xcode中。

答案 2 :(得分:0)

在iOS上,但在Android上,我还没有遇到这个问题。 Invariant Violation: requireNativeComponent:xxx not found in UIManager

问题似乎是依赖关系,因此未与您的项目链接,因此针对此问题提供了两种解决方案(取决于您的“依赖关系”)

  1. 在终端/ cmd中的项目路径上运行react-native link
  2. 手动将依赖项添加到MainApplication.java中,如下所示:

手动将依赖性添加到MainApplication.java中,如下所示:

@Override
    protected List<ReactPackage> getPackages() {      

      @SuppressWarnings("UnnecessaryLocalVariable")
      List<ReactPackage> packages = new PackageList(this).getPackages();
      // Packages that cannot be autolinked yet can be added manually here, for 
      packages.add(new RNFirebaseAnalyticsPackage());
      packages.add(new xxxPackage());
    }

可能有

答案 3 :(得分:0)

我只运行了react-native run-android就解决了这个问题。
注意:如果您已运行react-native链接,请先取消链接。

答案 4 :(得分:0)

将以下几行添加到 MainApplication.java

import com.airbnb.android.react.maps.MapsPackage; 




        @Override
        protected List<ReactPackage> getPackages() {
          @SuppressWarnings("UnnecessaryLocalVariable")
          List<ReactPackage> packages = new PackageList(this).getPackages();
          packages.add(new MapsPackage());
          return packages;