You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android应用中调用React Native创建的库函数

在Android应用中集成并调用React Native自定义库

步骤1:确认React Native库的Android端实现

先确保你通过npx react-native-create-library appname创建的库,Android端逻辑已完成:

  • 打开库项目的android/src/main/java/com/appname/目录,确认存在对应模块类(如AppnameModule.java),且目标调用函数已通过@ReactMethod注解暴露,示例:
@ReactMethod
public void myCustomFunction(String message, Promise promise) {
    // 自定义业务逻辑
    promise.resolve("处理结果:" + message);
}
  • 确认AppnamePackage.java中已注册该模块。

步骤2:将RN库的Android模块复制到示例项目lib目录

  • 找到RN库项目的android/src/main/java/com/appname/目录,将整个包目录复制到Android示例项目的app/src/main/java/lib/下(若lib目录不存在,手动创建)。
  • 修改复制后Java文件的包名,比如将package com.appname;改为package lib.com.appname;,保证与目录结构匹配。

步骤3:配置示例项目的依赖与构建脚本

  1. 在示例项目的app/build.gradle中添加React Native依赖(需与RN库使用的版本一致):
dependencies {
    // 原有依赖保留
    implementation "com.facebook.react:react-native:0.72.0" // 替换为你的RN版本
}
  1. 在项目根目录的build.gradle中添加RN相关maven仓库:
allprojects {
    repositories {
        // 原有仓库保留
        maven { url "$rootDir/../node_modules/react-native/android" }
        maven { url "$rootDir/../node_modules/jsc-android/dist" }
    }
}

若示例项目与RN库不在同一目录,可将路径改为RN库的本地路径,或使用远程maven依赖。

步骤4:在Android代码中调用RN库函数

需通过React Native的ReactInstanceManager获取模块实例并调用方法:

  1. 初始化ReactInstanceManager(纯Android应用需手动初始化):
ReactInstanceManager reactInstanceManager = ReactInstanceManager.builder()
        .setApplication(getApplication())
        .setCurrentActivity(this)
        .setBundleAssetName("index.android.bundle")
        .setJSMainModulePath("index")
        .addPackage(new AppnamePackage()) // 注册自定义RN包
        .setUseDeveloperSupport(BuildConfig.DEBUG)
        .setInitialLifecycleState(LifecycleState.RESUMED)
        .build();
  1. 获取模块并调用目标函数:
// 获取自定义模块实例
AppnameModule module = reactInstanceManager.getNativeModule(AppnameModule.class);
// 调用带Promise的异步方法
module.myCustomFunction("测试参数", new Promise() {
    @Override
    public void resolve(Object value) {
        Log.d("RN库调用", "执行成功:" + value.toString());
    }

    @Override
    public void reject(String code, String message) {
        Log.e("RN库调用", "执行失败:" + message);
    }

    // 实现其他reject重载方法
    @Override
    public void reject(String code, String message, Throwable throwable) {
        Log.e("RN库调用", "执行失败:" + message, throwable);
    }

    @Override
    public void reject(Throwable throwable) {
        Log.e("RN库调用", "执行异常", throwable);
    }
});

若为同步方法,可直接调用无需Promise。

步骤5:同步项目并测试

  • 点击Android Studio的「Sync Project with Gradle Files」按钮同步依赖。
  • 运行示例应用,验证RN库函数是否正常调用。

注意事项

  • 确保RN库与示例项目的React Native版本一致,避免版本冲突。
  • 纯Android应用需额外配置RN初始化相关权限(如网络权限)、混淆规则。
  • 若RN库包含JS层逻辑,需将JS代码打包为index.android.bundle放入示例项目的assets目录,或通过远程加载。

内容的提问来源于stack exchange,提问作者pushkar mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:20:30