React Native环境搭建及配置问题

版本问题

RN从0.60开始,Android平台移植到了androidx。

如果不想用androidx,安装rn必须指定版本为0.59。

$ yarn add react-native@0.59.10

对应的 react版本为16.8.3

$ yarn add react@16.8.3

参考:https://github.com/react-native-community/discussions-and-proposals/issues/129

常见问题

问题1

Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.

已经添加了Network Security Config,但是还是报错。

这是因为adb连接电脑的端口不对。

修改端口

adb reverse tcp:8081 tcp:8081

参考:https://reactnative.cn/docs/running-on-device/#1-enable-app-transport-security

问题2

java.lang.UnsatisfiedLinkError: couldn’t find DSO to load: libhermes.so

出现场景

集成RN到已有项目,运行时出现。

E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: com.ado.example, PID: 25851
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)
at com.facebook.hermes.reactexecutor.HermesExecutor.(HermesExecutor.java:20)
at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:27)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:949)
at java.lang.Thread.run(Thread.java:818)

原因

这是因为在React Native 0.60之后,新增了Facebook自研的js引擎Hermes。没有在项目的build.gradle中配置Hermes的仓库,所以找不到so文件。使用RN创建新项目时,RN会自动为我们生成标准的build.gradle。

解决方式

修改android根目录的build.gradle

...
allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }
        google()
    }
}
...

修改app目录的build.gradle

//最外层加上
project.ext.react = [
    enableHermes: false,  // clean and rebuild if changing
]
def jscFlavor = 'org.webkit:android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false);

android{
  	.....
}

dependencies{
  	.....
    //在这里添加依赖配置
    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }
}

点击sync now,再次运行项目,就不会报错了。

参考:https://github.com/facebook/react-native/issues/25986

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native 是一个基于 React 的框架,可以用于构建原生应用程序。在开始 React Native 开发之前,需要先搭建相应的开发环境。下面是 React Native 环境搭建的步骤: 1. 安装 Node.js 和 npm React Native 使用 Node.js 和 npm 进行构建和管理依赖。可以从 Node.js 官网下载对应平台的安装包,安装完成后,npm 就会随之安装。 2. 安装 React Native 命令行工具 打开终端或命令行窗口,运行以下命令: ``` npm install -g react-native-cli ``` 这个命令会全局安装 React Native 命令行工具。 3. 安装 Android Studio(仅适用于 Android 平台开发) 如果要进行 Android 平台开发,需要安装 Android Studio。可以从 Android Studio 官网下载对应平台的安装包,安装完成后,启动 Android Studio,并安装相应的 SDK 和 Android 虚拟设备(AVD)。 4. 配置 Android 环境变量(仅适用于 Windows 平台开发) 在 Windows 平台上进行 Android 开发时,需要配置相应的环境变量。可以在系统的“环境变量”中添加以下两个变量: - ANDROID_HOME:指向安装的 Android SDK 的路径 - PATH:在原有的 PATH 变量值后面添加 Android SDK 的 tools 和 platform-tools 目录的路径 5. 创建新项目 在终端或命令行窗口中,进入到要创建项目的目录,运行以下命令: ``` react-native init MyProject ``` 这个命令会创建一个名为 MyProject 的项目,其中包含了 React Native 的基本文件。 6. 运行项目 进入到项目的根目录,运行以下命令: ``` react-native run-android ``` 这个命令会启动 Android 模拟器,并在模拟器上运行项目。如果要在真机上运行项目,需要先将手机连接到电脑,并按照官方文档的说明进行配置。 以上就是 React Native 环境搭建的步骤,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值