当前位置: 首页 > article >正文

React Native 开发 安卓项目构建工具Gradle的配置和使用

gradle基本知识

gradle是React Native和Flutter调试、构建安卓App的打包工具。

gradle可以简单的类比为前端的webpack,webpack将源文件打包成HTML、CSS、JavaScript,而gradle将源文件打包成apk或aar(Android Assemble Bundle)。

React Native项目的android子项目的文件结构如下:

.gradle 
app
gradle
        wrapper
                gradle-wrapper.jar
                gradle-wrapper.propertier
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

每个文件的含义如下:

  • .gradle : gradle本地配置
  • app:apk的输出目录
  • gradle/wrapper/gradle-wrapper.propertier: gradle-wrapper的配置文件
  • gradle/wrapper/gradle-wrapper.jar: 与gradle-wrapper.propertier对应
  • build.gradle : gradle项目的配置文件
  • gradle.properties: gradle项目的配置文件
  • gradlew: Linux、MacOS平台构建安卓app时运行的脚本
  • gradlew.bat: Windows平台构建安卓app时运行的脚本
  • settings.gradle: gradle项目的配置文件

gradle和gradle-wrapper的区别

gradle是一个全局、通用的构建工具,而gradle-wrapper是在项目本地目录使用的构建工具。

对于React Native或Flutter而言,并不需要使用gradle,直接运行gradlew.bat脚本即可,gradlew就是gradle-wrapper对应的脚本工具。

添加国内镜像仓库

换源几乎是包管理器的必备操作。有些软件包的仓库在国内是无法访问的,因此需要增加国内的镜像仓库,实际上只需要改两个文件:

  • ./android/gradle/wrapper/gradle-wrapper.properties
  • ./android/build.gradle

下面依次说明怎么修改。

要修改的第一个文件是gradle-wrapper.properties,只需要修改distributionUrl的那一行,把后面的链接改成国内阿里云的,文件是gradle-8.6-all.zip,注意版本。

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.6-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

这里补充说明一下每一行的含义:

  • distributionBase : gradle的根目录。GRADLE_USER_HOME默认为家目录下的.gradle文件夹,保持默认,不要修改。
  • distributionPath :gradle的路径,与上面的根目录组合就是gradle的实际位置。
  • zipStoreBase和zipStorePath : 第三方工具的放置位置。

要修改的第二个文件是build.gradle。这里面的repositories部分定义了gradle应该去哪里下载第三方插件,默认内容是google()和mavenCentral()两个国外仓库。

这两个仓库需要使用挂代理才能使用,但是不能删除,因为有些插件的有些版本国内的镜像仓库并没有,必须要去这里下载。所以保留这两个仓库,在后面添加三个仓库,修改后的内容是:

repositories {
     google()
     mavenCentral()
     maven { url 'https://maven.aliyun.com/repository/google' }
     maven { url 'https://maven.aliyun.com/repository/jcenter' }
     maven { url 'https://maven.aliyun.com/nexus/content/groups/public'}
    }

构建安卓App

首先使用USB或无线的方式连接手机与电脑,然后运行如下命令开始安卓的调试:

npm run android

这会打开Metro程序,这个程序会实时监控源文件的修改,并实时重新编译安卓App。

源代码编写完成后,就可以构建apk了。首先进入android子项目中:

cd android

然后运行如下命令开始打包apk:

.\gradlew.bat assemble

实际上gradlew.bat 还有很多其它子命令,表示不同的任务,使用如下命令查看:

.\gradlew.bat tasks

比较常用的有三个命令:

  • .\gradlew.bat assemble: 打包成apk文件,国内应用商店使用这个文件。
  • .\gradlew.bat bundle: 打包成aar文件,谷歌应用商店使用这个文件。
  • .\gradlew.bat build: 除了打包成安装包,还会进行测试等工作。

打包完成后,在./android/app/build/outputs/apk/release文件夹下,可以找到app-release.apk文件。将这个文件拷贝到手机安装即可。不过,由于app没有签名,会提示不能直接安装,忽略风险继续安装即可。


http://www.kler.cn/a/538632.html

相关文章:

  • 【大模型】DeepSeek-V3技术报告总结
  • 增量hdfs数据追平
  • 【报错解决】MySQL报错:sql_mode=only_full_group_by
  • 《qt easy3d中添加孔洞填充》
  • 通过Demo案例的形式弄懂Java中的设计模式
  • 计算机网络知识速记:TCP 与 UDP
  • JVM 的理解
  • 活动预告 |【Part1】Microsoft Azure 在线技术公开课:AI 基础知识
  • uniapp开发微信小程序请求超时设置【亲测有效】
  • [ Spring ] Integrate Spring Boot Service Monitor Prometheus and Grafana
  • 12.8 LangChain Agent 的灵魂:ReAct 框架理论与实战解析
  • 深入理解并行与并发:C++/Python实例详解
  • 迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-在产品中新增子系统
  • 链表专题-03
  • vmware虚拟机可以使用Windows的GPU吗
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter6-集合引用类型
  • git撤销上一次的提交
  • C# Winform怎么设计串口,客户端和相机控件界面显示
  • Win11下搭建Kafka环境
  • 2. UVM的基本概念和架构
  • 深度学习在医疗影像分析中的应用
  • [Meet DeepSeek] 如何顺畅使用DeepSeek?告别【服务器繁忙,请稍后再试。】
  • 前端【技术方案】浏览器兼容问题(含解决方案、CSS Hacks、条件注释、特性检测、Polyfill 等)
  • SQL写法:行行比较
  • 【R语言】数据分析
  • fatal:Authentication failed for “http....