Android Studio 与 夜神模拟器初始化 React-Native 0.72

Android Studio 与 夜神模拟器初始化 React-Native 0.72

  1. 安装Android Studio 编辑器(取消安装自带的虚拟器)
  2. 按照官方教程把npm, yarn, JDK17 环境配置好。https://reactnative.cn/docs/environment-setup
  3. SDK 管理器勾选安装以下(具体我不清除哪几个真的用到)
    Android SDK Platform
    Android API 35 下的:Android SDK Platform 35, Sources for Android 35
    Android API 34 下的:Android SDK Platform 34
    Android 13.0 (Tiramisu)下的:Android SDK Platform 33
    SDK Tools
    Android SDK Build-Tools 35 下的:35.0.0,34.0.0,30.0.3
    底部的 Android Emulator , Android SDK Platform-Tools

装好后 Settings 搜索 adb, Build下的Debugger 里的底部有个 Enable adb mDNS for wireless debugging 取消勾选。

  1. 打开一个英文路径下,自己创建的文件夹
  2. 打开一个shell 窗口
  3. 执行
    npm uninstall -g react-native-cli @react-native-community/cli
    npx @react-native-community/cli0.72 init AwesomeProject --version 0.72
  4. 修改Gradle获取方式为本地文件 ,提前从阿里云下载 gradle-8.0.1-all.zip
    https://mirrors.aliyun.com/gradle/distributions/v8.0.1/gradle-8.0.1-all.zip
    打开 AwesomeProject 项目下的
    AwesomeProject/android/gradle/wrapper/gradle-wrapper.properties
properties 复制代码
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=file:///D:/VUE/Git/.gradle/wrapper/dists/gradle-8.0.1-all.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
  1. 配置镜像源
    AwesomeProject/android/build.gradle
gradle 复制代码
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "33.0.0"
        minSdkVersion = 21
        compileSdkVersion = 33
        targetSdkVersion = 33

        // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
        ndkVersion = "23.1.7779620"
    }
    repositories {
//        google()
        maven{ url 'https://maven.aliyun.com/repository/google'}
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle")
        classpath("com.facebook.react:react-native-gradle-plugin")
    }
}
  1. 启动,等待漫长的下载过程,大概几个小时吧,反正我用了一周时间反复尝试才成功的。

    cd .\AwesomeProject
    yarn android

  2. 安装 夜神模拟器,我的安装路径为 D:\Nox

  3. 查看Android studio 与 Nox 的adb版本是否对应
    打开 D:\Nox\bin目录,在此处打开一个shell,然后执行
    .\nox_adb version

shell 复制代码
 .\nox_adb version
Android Debug Bridge version 1.0.32  #我没配置前是大概是这个,记不得了
Version 35.0.2-12147458
Installed as D:\Nox\bin\nox_adb.exe
Running on Windows 10.0.19045

Nox 的 adb 版本是 1.0.32

然后执行:

shell 复制代码
PS D:\Nox\bin> adb version
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as D:\VUE\Git\Java_Android\sdk\platform-tools\adb.exe
Running on Windows 10.0.19045

Android Studio 的 adb 版本是 1.0.41

此时可以看到 Nox 的adb版本低于 Android Studio 的 adb 版本,这会导致安装时一直重新reset 链接或者报错。

  1. 将Android Studio 的 adb 复制到 Nox 的 adb
    我参考了 https://blog.csdn.net/weixin_43244083/article/details/132587575 这篇文章
    操作就是把 D:\VUE\Git\Java_Android\sdk\platform-tools 文件夹下的 3 个文件复制到 D:\Nox\bin 目录替换旧的。

    然后把原来的 nox_adb.exe 重命名为adb_nox_bf.exe 以防之后错误,可以重新改回来。再把复制过来的adb.exe 改为 adb_nox.exe。
  2. 链接 Android Studio 的adb , shell 里执行,你可把它放到一个自己创建的 bat 脚本里,然后搞个快捷键就方便以后连接了。
    nox_adb.exe connect 127.0.0.1:62001
  3. 为了防止配置加载不同步,现在把Nox , Android Studio都关了,然后再次启动他们
  4. 启动好后链接 Android Studio 的 adb , nox_adb.exe connect 127.0.0.1:62001
  5. 进入AwesomeProject 执行启动。
    yarn android

我的配置就这些要点,搞了一周才勉强弄好,希望可以帮到你哦。

相关推荐
不法2 小时前
java查看安卓证书信息
android
儿歌八万首2 小时前
Jetpack Compose 动画实战:让你的 UI 动起来
android·kotlin·动画·compose
「QT(C++)开发工程师」2 小时前
我的 TRAE 编程体验-简介篇
ide·trae
千里马学框架2 小时前
如何改进车载三分屏SplitScreen启动交互方式?
android·智能手机·分屏·aaos·安卓framework开发·车载开发·3分屏
AI大佬的小弟2 小时前
pycharm专业版有哪些功能?
ide·pycharm·pycharm专业版的功能·代码写作软件推荐
从此不归路3 小时前
FPGA 结构与 CAD 设计(第3章)上
ide·fpga开发
zhanglb123 小时前
Gradle 全局配置使用
gradle·android studio·intellij idea
REDcker4 小时前
Android WebView 版本升级方案详解
android·音视频·实时音视频·webview·js·编解码
麦兜*4 小时前
【springboot】图文详解Spring Boot自动配置原理:为什么@SpringBootApplication是核心?
android·java·spring boot·spring·spring cloud·tomcat
le1616164 小时前
Android 依赖种类及区别:远程仓库依赖、打包依赖、模块依赖、本地仓库依赖
android