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

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
gradlewrappergradle-wrapper.jargradle-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没有签名,会提示不能直接安装,忽略风险继续安装即可。

相关文章:

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

gradle基本知识 gradle是React Native和Flutter调试、构建安卓App的打包工具。 gradle可以简单的类比为前端的webpack,webpack将源文件打包成HTML、CSS、JavaScript,而gradle将源文件打包成apk或aar(Android Assemble Bundle)。…...

IntelliJ IDEA新版本的底部version control(或git)里local change窗口显示配置修改详细教程

环境 IntelliJ IDEA 2024.3.2.2 (Ultimate Edition) Runtime version: 21.0.58-b631.30 aarch64 (JCEF 122.1.9) macOS 14.2.1 自己记录下。 步骤 设置 --> Version Control(版本控制) --> Commit(提交) --> 去掉勾选:Use non-modal commit interface…...

MySQL三大日志——binlog、redoLog、undoLog详解

日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息,能帮助我们进行很多容错及分析工作,其中有三大日志与我们这些开发者息息相关,本文将介绍binlog、redoLog、undoLog三种日志: 1. redoLog 1.1 为什么…...

MCU应用踩坑笔记(ADC 中断 / 查询法)

问题描述 IC:SC92F7596,在使用过程中,发现一个问题,就是我们使用到了ADC功能,程序的代码如下: ADC采样周期200ms ,采样个数:4 在使用过程中,因配置了ADC中断使能,在中断…...

32.日常算法

1.最大子数组和 题目来源 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,…...

通过docker安装部署deepseek以及python实现

前提条件 Docker 安装:确保你的系统已经安装并正确配置了 Docker。可以通过运行 docker --version 来验证 Docker 是否安装成功。 网络环境:保证设备有稳定的网络连接,以便拉取 Docker 镜像和模型文件。 步骤一:拉取 Ollama Docker 镜像 Ollama 可以帮助我们更方便地管理…...

批量提取word表格数据到一个excel

新建一个excel到word同级目录altf11打开vba窗口并新建模块粘贴下方代码(修改一些必要参数)回到excel表格界面,altf8选择执行该宏注意要在信任中心开启运行vba宏 Sub 批量提取word表格数据到excel()Dim wdApp As Object, wdDoc As ObjectDim …...

使用 Axios 获取用户数据并渲染——个人信息设置

目录 1. HTML 部分(前端页面结构) HTML 结构解析: 2. JavaScript 部分(信息渲染逻辑) JavaScript 解析: 3. 完整流程 4. 总结 5. 适用场景 本文将介绍如何通过 Axios 从服务器获取用户信息&#xff0…...

DeepSeek在FPGA/IC开发中的创新应用与未来潜力

随着人工智能技术的飞速发展,以DeepSeek为代表的大语言模型(LLM)正在逐步渗透到传统硬件开发领域。在FPGA(现场可编程门阵列)和IC(集成电路)开发这一技术密集型行业中,DeepSeek凭借其…...

【GitLab CI/CD 实践】从 0 到 1 搭建高效自动化部署流程

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

【DeepSeek-R1训练笔记】随手记录一些训练log

背景说明 DeepSeek系列解读请移步我的上一篇blog:【完整版】DeepSeek-R1大模型学习笔记(架构、训练、Infra)代码仓库【科大的大四老哥太太太太太值得倾佩了】:https://github.com/Unakar/Logic-RLDeepSeek-R1-Zero复现文档&#…...

【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具04

SQLSERVER的ImpDp和ExpDp工具演示 1、指定某些表作为导出对象外 (-exclude_table) 验证用:导出的表,导入到新的数据库 2、指定某些表作为导出对象外 (-exclude_table) 支持模糊检索,可以使用星号 以s开头的表作为导出对象外,…...

「全网最细 + 实战源码案例」设计模式——策略模式

核心思想 策略模式(Strategy Pattern)是一种行为型设计模式,用于定义一系列算法或策略,将它们封装成独立的类,并使它们可以相互替换,而不影响客户端的代码,提高代码的可维护性和扩展性。 结构 …...

[MoeCTF 2022]baby_file

题目 <html> <title>Heres a secret. Can you find it?</title> <?phpif(isset($_GET[file])){$file $_GET[file];include($file); }else{highlight_file(__FILE__); } ?> </html> 读取flag /?filephp://filter/readconvert.base64-encode…...

【AI日记】25.02.07 探索开辟第二战场

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】【AI应用】 探索 探索如何做视频博主一边坚持主攻方向&#xff08; 找工作&#xff0c;包括 AI 学习和 kaggle比赛&#xff09;&#xff0c;一边尝试开辟第二战场&#xff08;比如&#xff1a;视…...

path 路径模块

在开发基于 Node.js 的应用程序时&#xff0c;处理文件路径是一个常见的需求。为了简化这一过程并避免跨平台兼容性问题&#xff0c;Node.js 提供了 path 模块。该模块提供了一系列实用的方法来解析、格式化和操作文件路径。本文将详细介绍 path 模块的功能及其使用方法&#x…...

SpringBoot中的多环境配置管理

SpringBoot中的多环境配置管理 文章目录 SpringBoot中的多环境配置管理SpringBoot中的多环境配置管理 多环境配置的概述1. 为什么需要多环境配置&#xff1f;2. Spring Boot 中如何实现多环境配置&#xff1f;3. 多环境配置的应用场景4. 如何实现配置隔离&#xff1f; Spring B…...

mac下生成.icns图标

笔记原因&#xff1a; 今日需要在mac下开发涉及图标文件的使用及icons文件的生成&#xff0c;所以记录一下。 网络上都是一堆命令行需要打印太麻烦了&#xff0c;写一个一键脚本。 步骤一 将需要生成的png格式文件重命名为“pic.png” mv xxxx.png pic.png 步骤二 下载我…...

关于JS继承的七种方式和理解

1.原型链继承 function Fun1() {this.name parentthis.play [1, 2, 3] } function Fun2() {this.type child }Fun2.prototype new Fun1()let s1 new Fun2() let s2 new Fun2() s1.play.push(4) console.log(s1.play, s2.play) // [1, 2, 3, 4] [1, 2, 3, 4]可以看到两个…...

储能系统-系统架构

已更新系列文章包括104、61850、modbus 、单片机等&#xff0c;欢迎关注 IEC61850实现方案和测试-1-CSDN博客 快速了解104协议-CSDN博客 104调试工具2_104协议调试工具-CSDN博客 1 电池储能系统&#xff08;BESS&#xff09; 架构 电池储能系统主要包括、电池、pcs、本地控制…...

Vivado 时序约束文件 (.xdc) 管理与维护实战指南:从单文件到团队协作

Vivado 时序约束文件 (.xdc) 管理与维护实战指南&#xff1a;从单文件到团队协作 在FPGA设计流程中&#xff0c;时序约束文件&#xff08;.xdc&#xff09;如同交通信号灯&#xff0c;为设计指明方向与规则。随着项目规模扩大和团队协作需求增加&#xff0c;如何高效管理这些约…...

告别重装系统!用宝塔官方卸载脚本一键清理面板与环境(附LNMP保留方案)

宝塔面板深度卸载指南&#xff1a;精准控制环境清理与数据保留策略 每次面对服务器环境调整时&#xff0c;那种"要不要重装系统"的纠结感总让人头疼。特别是当宝塔面板需要卸载时&#xff0c;大多数教程要么简单带过&#xff0c;要么直接建议核弹式的系统重装。但真实…...

League-Toolkit:基于LCU API的英雄联盟效率工具实战指南

League-Toolkit&#xff1a;基于LCU API的英雄联盟效率工具实战指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolk…...

效率倍增:用快马平台一键生成极客日报推荐的高效开发工具与脚本

最近在极客日报上看到不少提升开发效率的小技巧&#xff0c;比如用Prettier统一代码风格、配置Git Hooks自动化检查等等。但每次看完想实践时&#xff0c;总得花时间查文档、写配置&#xff0c;挺麻烦的。于是我用InsCode(快马)平台做了个工具生成器&#xff0c;能直接把日报里…...

VRCT完全指南:在VRChat中打破语言障碍的终极解决方案

VRCT完全指南&#xff1a;在VRChat中打破语言障碍的终极解决方案 【免费下载链接】VRCT VRCT(VRChat Chatbox Translator & Transcription) 项目地址: https://gitcode.com/gh_mirrors/vr/VRCT VRCT&#xff08;VRChat Chatbox Translator & Transcription&…...

别再只用Whisper了!WhisperX + Python 实战:如何为3分钟视频批量ASR搭建高效处理流水线

WhisperX Python 实战&#xff1a;构建高吞吐量语音识别流水线的工程实践 在音视频内容爆炸式增长的时代&#xff0c;语音识别技术已成为内容生产、知识管理、数字营销等领域的基础设施。当处理规模从单个文件扩展到数百小时的音视频素材时&#xff0c;传统单次处理模式显露出…...

一文读懂DMXAPI:一个Key接入300+大模型,开发者降本增效新选择

导语&#xff1a;在大模型应用爆发式增长的今天&#xff0c;开发者面临模型选择多、接入成本高、并发限制严、发票合规难等痛点。有没有一种方案&#xff0c;能让开发者"一次接入&#xff0c;全模型可用"&#xff1f;本文带你深入了解国内新兴的AI大模型聚合平台——…...

ExplorerBlurMica终极指南:让你的Windows文件资源管理器焕然一新

ExplorerBlurMica终极指南&#xff1a;让你的Windows文件资源管理器焕然一新 【免费下载链接】ExplorerBlurMica Add background Blur effect or Acrylic (Mica for win11) effect to explorer for win10 and win11 项目地址: https://gitcode.com/gh_mirrors/ex/ExplorerBlu…...

conda 注册环境 笔记

查看conda根目录&#xff1a;conda info --base收到&#xff1a;/home/chajing/miniconda3注册路径为名字&#xff1a;ln -s /data/lbg/envs/py12 /home/chajing/miniconda3/envs/py12conda activate py12conda activate /data/lbg/envs/py12...

Hunyuan-MT-7B开源大模型落地:Pixel Language Portal在海关报关单多语种智能填单系统中的集成

Hunyuan-MT-7B开源大模型落地&#xff1a;Pixel Language Portal在海关报关单多语种智能填单系统中的集成 1. 项目背景与挑战 海关报关单处理一直是国际贸易中的关键环节&#xff0c;传统方式面临两大核心挑战&#xff1a; 语言障碍&#xff1a;报关单涉及33种以上语言&…...