Windows下使用AndroidStudio+ReactNative开发Android应用

本文档详述了React Native环境下Android应用的开发流程,包括环境配置、项目创建及常见错误处理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、环境配置
1、其他环境
如果之前有用 AndroidStudio开发过安卓应用, Java环境和AndroidSDK都应该安装过了,否则需要安装一下。
另外需要安装 Node.js(后面需要使用npm)。

2、安装react-native

1) 直接使用npm安装

在cmd命令工具中执行以下命令,注意并非 install react-native,装了react-native在后面init项目的时候会报错,需要卸掉再重装。

npm install -g react-native-cli

2) 先clone代码再npm安装

代码clone成功后,进入目录react-native-cli下,例如我的是 F:\opensource\react-native\react-native-cli,输入命令行:
npm install -g

安装好之后,可以命令行下就有 react-native命令了


二、创建ReactNative项目

命令行:
react-native init HelloAndroid

该命令会去拉取下载ReactNative源代码和相关依赖组件,然后创建一个包含了ios和android的项目:

在AndroidStudio上打开HelloAndroid/android目录,等待gradle构建完毕后运行HelloAndroid程序(稍久),可以看到以下ReactNatibe经典报错UI:

06-15 11:27:15.440 4649-4649/com.helloandroid E/unknown:React: Exception in native call from JS
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Could not connect to development server.
Try the following to fix the issue:
Ensure that the packager server is running
Ensure that your device/emulator is connected to your machine and has USB debugging enabled - run 'adb devices' to see a list of connected devices
If you're on a physical device connected to the same machine, run 'adb reverse tcp:8081 tcp:8081' to forward requests from your device
If your device is on the same Wi-Fi network, set 'Debug server host & port for device' in 'Dev settings' to y
    at com.facebook.react.ReactInstanceManagerImpl.createReactContext(ReactInstanceManagerImpl.java:860)
    at com.facebook.react.ReactInstanceManagerImpl.access$700(ReactInstanceManagerImpl.java:98)
    at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.doInBackground(ReactInstanceManagerImpl.java:194)
    at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.doInBackground(ReactInstanceManagerImpl.java:177)
    at android.os.AsyncTask$2.call(AsyncTask.java:288)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:841)
 Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Could not connect to development server.
Try the following to fix the issue:
Ensure that the packager server is running
Ensure that your device/emulator is connected to your machine and has USB debugging enabled - run 'adb devices' to see a list of connected devices
If you're on a physical device connected to the same machine, run 'adb reverse tcp:8081 tcp:8081' to forward requests from your device
If your device is on the same Wi-Fi network, set 'Debug server host & port for device' in 'Dev settings' to y
    at com.facebook.react.common.futures.SimpleSettableFuture.get(SimpleSettableFuture.java:68)
    at com.facebook.react.ReactInstanceManagerImpl.createReactContext(ReactInstanceManagerImpl.java:831)
        ... 9 more
 Caused by: java.lang.RuntimeException: Could not connect to development server.
Try the following to fix the issue:
Ensure that the packager server is running
Ensure that your device/emulator is connected to your machine and has USB debugging enabled - run 'adb devices' to see a list of connected devices
If you're on a physical device connected to the same machine, run 'adb reverse tcp:8081 tcp:8081' to forward requests from your device
If your device is on the same Wi-Fi network, set 'Debug server host & port for device' in 'Dev settings' to y
    at com.facebook.react.bridge.ReactBridge.loadScriptFromAssets(Native Method)
    at com.facebook.react.bridge.JSBundleLoader$1.loadScript(JSBundleLoader.java:32)
    at com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:148)
    at com.facebook.react.ReactInstanceManagerImpl$4.call(ReactInstanceManagerImpl.java:851)
    at com.facebook.react.ReactInstanceManagerImpl$4.call(ReactInstanceManagerImpl.java:832)
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$1.run(MessageQueueThreadImpl.java:73)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
    at android.os.Looper.loop(Looper.java:136)
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:197)
        ... 1 more

这是因为我们还未启动react-native的服务。
命令行中进入项目目录,输入react-native start进行构建,等待一段时间。
react-native start
注意这里不是使用run-android,run-android适用于直接在机器上运行调试app。

构建完毕,在浏览器中访问 http://localhost:8081/index.android.bundle?platform=android如果可以访问表示服务器端已经可以了。

我们摇一摇手机,点击 Dev Settings后,点击 Debug server host & port for device,设置IP和端口。

这里的IP是电脑的IP,端口号固定8081。

设置完成后,回到空白页面,再次摇一摇手机,选择Reload JS,程序就运行起来,出现Welcome to React Native!

这个信息是在项目目录下 index.android.js里的,可以打开看看:
class HelloAndroid extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit index.android.js
        </Text>
        <Text style={styles.instructions}>
          Shake or press menu button for dev menu
        </Text>
      </View>
    );
  }
}

注意 Android5.0以上版本命令方式:
打开Android SDK目录 xxx\Android\sdk\platform-tools。在当前文件路径呼出命令行,输入:
adb reverse tcp:8081 tcp:8081
点击Reload JS 即可成功拉取ReactNative bundle。



参考:


### Windows平台应用开发教程和工具 #### 工具选择 对于Windows平台的应用程序开发,有多种工具可以选择。其中最常用的开发环境是Visual Studio,它不仅支持传统的Windows Forms (WinForms)[^2] 和 Windows Presentation Foundation (WPF) 应用程序的构建[^3],还能够用于配置和支持新兴跨平台框架如Flutter在Windows上的部署与运行[^4]。 #### 开发流程概述 ##### 使用传统.NET技术栈(WinForms/WPF) 当采用经典的.NET技术来创建桌面应用程序时,开发者通常会经历如下过程: - **新建项目**:启动Visual Studio之后,在向导中挑选适合的模板,比如“Windows Forms App (.NET Core)” 或者 “WPF Application”。这一步骤允许快速初始化一个新的解决方案结构。 - **设计界面**:利用集成的设计视图拖拽控件到表单上布置UI布局;也可以直接编辑XAML文件定义更复杂的图形化组件层次关系以及样式属性设置。 - **编码逻辑实现**:借助于强大的IntelliSense特性辅助编写业务处理函数,并且可以方便地调试代码中的错误位置并修正它们。 ##### 利用现代跨平台方案(Flutter) 如果目标是在多个操作系统间共享尽可能多的源码,则考虑使用Flutter作为前端框架可能是更好的决定之一。具体步骤包括但不限于: - **准备前置条件**:确保已安装最新版本的Visual Studio并且选择了必要的工作负载选项以满足C++编译需求。此外还需确认启用了系统级别的开发者模式以便顺利执行后续命令行指令。 - **验证SDK状态**:通过`where flutter dart`检查当前机器是否已经存在有效的Flutter SDK路径指向。如果没有找到相应记录则需前往官方网站下载官方发布的稳定版包进行本地解压放置。 - **建立工程实例**:依据个人喜好选取合适的IDE(例如Android Studio或VS Code),按照提示完成新项目的创建工作流。值得注意的是,为了使生成的应用能够在Windows平台上正常运作,可能还需要额外指定一些特定参数或是调整默认配置项[^1]。 ```bash flutter create my_windows_app cd my_windows_app flutter config --enable-windows-desktop flutter pub get ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

asmcvc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值