Android打包ReactNative项目作为SDK(将RN项目打包为aar包,调用方无需集成RN环境)
要将React Native项目打包为AAR文件并提供给调用方使用,你需要执行以下步骤:
确保你的React Native项目已经构建过。在项目根目录下运行以下命令:
cd android && ./gradlew clean && ./gradlew bundleRelease
这将生成一个已经签名的release版本的JS bundle。
- 修改
android/build.gradle
文件,确保在dependencies
中包含了react-native
模块,并且应用了正确的版本号。 在
android/app/build.gradle
中,添加以下代码以创建AAR文件:task makeJar(type: Copy) { // Delete old jar file delete 'build/outputs/aar/release.aar' // Set workspace to root build.gradle from('build/outputs/aar/') // Change destination dir to your libs dir into('../libs') // Only include .aar file in libs dir include('*.aar') // Rename the aar file rename('^release-.*\\.aar$', 'mymodule.aar') } makeJar.dependsOn(clean, build)
- 运行
./gradlew makeJar
,这将在android/app/build/libs/
目录下生成一个名为mymodule.aar
的文件。 - 将生成的
mymodule.aar
和android/app/src/main/java/
下你的React Native包名对应的文件夹一起提供给调用方。
调用方需要将AAR文件和对应的Java源代码添加到自己的Android项目中。以下是调用方需要在其build.gradle
文件中进行的配置:
allprojects {
repositories {
maven {
url "your_repository_path" // 指向包含AAR的本地路径或远程仓库
}
}
}
dependencies {
implementation(name: 'mymodule', ext: 'aar') // 替换为实际的AAR文件名
// 其他依赖...
}
调用方还需要在其settings.gradle
中添加:
include ':app'
include ':mymodule'
project(':mymodule').projectDir = new File('your_path_to_AAR/mymodule.aar')
最后,调用方需要在其主应用的MainActivity
或相应的Activity中初始化React Native引擎并加载JavaScript bundle:
public class MainActivity extends ReactActivity {
@Override
protected String getMainComponentName() {
return "YourMainComponent"; // 替换为实际的React Native组件名
}
@Override
protected ReactInstanceManager createReactInstanceManager() {
ReactInstanceManagerBuilder builder = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle") // 或者你的JS bundle文件名
.setJSMainModulePath("index.android")
.addPackage(new MainReactPackage())
// 添加其他的React Packages
.setUseDeveloperSupport(BuildConfig.DEBUG);
// 如果你的RN项目有自定义的ReactNativeHost,可以这样初始化
// return ((MyReactNativeHost) getReactNativeHost()).getReactInstanceManager();
评论已关闭