采用aar方式将react-native集成到已有安卓APP

要将React Native集成到已有的Android应用中,并以AAR格式提供,你需要按照以下步骤操作:

  1. 创建一个React Native项目。
  2. 构建生成的React Native代码为AAR文件。
  3. 将AAR文件集成到你的Android项目中。

以下是实现这些步骤的简化指南和示例代码:




# 在你选择的目录下初始化一个React Native项目
npx react-native init MyReactNativeApp
 
# 进入项目目录
cd MyReactNativeApp
 
# 修改gradle文件以生成AAR文件
# 修改android/gradle.properties文件,添加以下内容
BUILD_TYPE=release
 
# 修改android/app/build.gradle文件,在底部添加以下内容
task makeJar(type: Copy) {
    // Delete old jar file
    delete 'build/outputs/react.aar'
 
    // Set the new jar file destination
    from('build/outputs/aar/')
    into('build/outputs/')
    include('*.aar')
    rename ('(.*)-release.aar', 'react.aar')
}
 
makeJar.dependsOn(clean, build)
 
# 执行gradle任务生成AAR文件
./gradlew makeJar
 
# 生成的AAR文件位于
# android/build/outputs/react.aar

集成生成的react.aar到你的Android项目中:

  1. react.aar复制到你的Android项目的libs目录下。
  2. 在你的build.gradle文件的dependencies部分添加如下代码:



implementation(name: 'react', ext: 'aar')
  1. 确保你的settings.gradle文件包含了React Native模块:



include ':react-native-module'
project(':react-native-module').projectDir = new File(settingsDir, '../node_modules/react-native/android')
  1. 在你的主应用的build.gradle文件中添加React Native模块依赖:



implementation project(':react-native-module')
  1. 初始化ReactInstanceManager并启动React Native应用。在你的Application类或者启动Activity中添加:



import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
 
import java.util.Arrays;
import java.util.List;
 
public class MyApplication extends Application implements ReactApplication {
 
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }
 
    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage()
      );
    }
  };
 
  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }
 
  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
  }
}

在合适的地方启动React Native应用:




ReactInstanceManager mReactInstanceManager = ((MyApplication) getApplication()).getReactNative
最后修改于:2024年08月23日 21:22

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日