繁体   English   中英

不变违规:requireNativeComponent:在 UIManager 中找不到“AIRMap”。 没有修复?

[英]Invariant Violation: requireNativeComponent: "AIRMap" was not found in the UIManager. No fix?

我遵循了 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
  }
})

尝试这个:

打开 xcode 项目 > 您的项目 > 构建阶段 > 链接二进制文件 > 删除 libAirMaps.a > 然后再次添加 > 检查它是否有效...检查图像以获取详细说明

编辑:如果您已经安装了 react-native-maps,请尝试手动添加 AirMapsLib。 按照此图像上的说明进行操作。 之后,再试一次上述说明。 图像说明 1 在这里!

图片说明2在这里!

请查看这两个链接,它们为您提供了有关 iOS 和 Android 中反应本机地图集成的详细信息

适用于 Android 和 ios 的地图集成链接 1

地图整合链接2

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

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

问题似乎是依赖项未链接到您的项目,因此此问题有 2 个解决方案(取决于您的“依赖项”)

  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());
    }

可能有

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

将以下几行添加到 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;

利用yarn<\/code> 。 因为 npm 会给出与解决问题无关的错误。

"

您还需要在项目中添加 google api 密钥才能正确安装库。

对我来说,我有我的 ios map,我不得不关闭我的终端和我的刺激器,然后再次重新启动,一切都很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM