当前位置:  开发笔记 > 编程语言 > 正文

如何在React Native for Android Apps中设置canOverrideExistingModule = true?

如何解决《如何在ReactNativeforAndroidApps中设置canOverrideExistingModule=true?》经验,为你挑选了5个好方法。

我使用React Native构建了一个Android应用程序,它已经成功构建但是当我在我的Android虚拟设备中运行应用程序时,它会显示一个完整的红色屏幕,并显示以下错误:

在此输入图像描述

我之前没有完成本机应用程序开发,也没有任何Java知识,所以我不知道这个错误意味着什么,以及如何解决这个问题.



1> 小智..:

与此错误关联的包的名称不是,AirMapModule而是MapsPackage来自com.airbnb.android.react.maps.

在您MainApplication.java的目录中:android/app/src/main/java/../../删除任何重复的条目:

进口包: import com.airbnb.android.react.maps.MapsPackage

对模块构造函数的调用:new MapsPackage()in functiongetPackages


第一个子弹在网上随处可见,但这是第一个提到第二个寻找重复的地方.谢谢.

2> 小智..:

转到文件"MainApplication.java"(在.\ android\app\src\main\java\com\projectName下)

确保在getPackages()函数下你没有重复的行(在我的情况下,我有两次"new MapsPackage()").

修复重复导入.

祝好运



3> 小智..:

转到MainAplication文件.

删除重复的包并删除getPackages()方法中的重复包

  @Override
    protected List getPackages() {
      return Arrays.asList(
          new MainReactPackage(),
            new VectorIconsPackage()
      );
    }

然后在终端中尝试此命令后:

cd android

./gradlew清洁



4> 小智..:
  @Override    
  public boolean canOverrideExistingModule() {        
    return true;    
  }   

将这些代码添加到您的本机模块构造函数中就可以了


您本机模块的确切含义是什么?图书馆?我收到错误消息“模块未从其超类覆盖方法”
有人可以更详细地说明此解决方案吗?请告诉我们什么以及在哪里...

5> 小智..:

如果您使用的RN版本> = 0.60,则自动链接和手动链接可能两次执行相同的操作。您有两种选择:

1-您可以还原getPackages方法中的代码更改
2-您可以禁用react-native-config.js文件中的自动链接。

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有