React Native:Android 原生模块

Posted

技术标签:

【中文标题】React Native:Android 原生模块【英文标题】:React Native: Android Native Module 【发布时间】:2017-12-29 17:22:27 【问题描述】:

我在 React Native / android 项目上实现了原生模块。 在 android 原生项目中,我使用 startActivity 函数移动到我手动创建的新活动。 我将分享一些代码。

//MainApplication.java

public class MainApplication extends MultiDexApplication 
  ...
  // Needed for `react-native link`
  public List<ReactPackage> getPackages() 
    return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
      new AnExampleReactPackage(this)
    );
  
  ...

在这里,如果我使用代码 new MainReactPackage(),那么我在我的 android 设备上运行应用程序时会看到错误。

原生模块 AccessibilityInfoModule 试图覆盖 模块名称 AccessibilityInfo 的 AccessibilityInfoModule。如果这是 你的意图,设置 canOverrideExistingModule=true

但我不确定如何设置canOverrideExistingModule。 我该如何解决这个问题?

相关问题:React Native: Android activity go back

【问题讨论】:

【参考方案1】:

您真的要覆盖 AccessibilityInfoModule 吗?如果是,那么只需将其添加到您的 NativeModule 类中

@Override    
public boolean canOverrideExistingModule()         
  return true;    
 

【讨论】:

在哪里可以找到 NativeModuleClass? 是的,你把这个放在哪里?【参考方案2】:

检查你的

MainApplication.java

(在 .\android\app\src\main\java\com\projectName 下) 查看 getPackages() 方法中是否有重复的声明。

并检查导入。

【讨论】:

以上是关于React Native:Android 原生模块的主要内容,如果未能解决你的问题,请参考以下文章

React Native:Android 原生模块

React—Native开发之原生模块向JavaScript发送事件

React-Native开发之原生模块封装(Android)升级版

React Native iOS原生模块开发实战|教程|心得|如何创建React Native iOS原生模块

原生Android集成React Native

如何使用 onRequestPermissionsResult 处理 React Native Android 模块中的权限?