导航:首页 > 程序命令 > gradlew命令

gradlew命令

发布时间:2023-04-14 04:26:37

Ⅰ 全面理解Gradle - 执行时序

一个像 Ant 一样的非常灵活的通用构建工具
一种可切换的, 像 maven 一样的基乎绝于合约构建的框架岁首姿
支持强大的多工程构建
支持强大的依赖管理(基于 ApacheIvy )
支持已有芹枯的 maven 和 ivy 仓库
支持传递性依赖管理, 而不需要远程仓库或者 pom.xml 或者 ivy 配置文件
优先支持 Ant 式的任务和构建
基于 groovy 的构建脚本
有丰富的领域模型来描述你的构建

如果你本地安装了Gradle,那么你就可以使用gradle命令来直接构建。如果本地没有安装,那么可以通过gradle wrapper来构建,linux和MAC使用./gradlew,而Windows上面则使用gradlew,还可以在 gradle/gradle-wrapper.properties 中配置 Gradle 版本。

Gradle脚本的执行分为三个过程:

下面我们根据一个实际的例子来详细说明。这里我们仍然采用VirtualAPK这个开源项目来做演示,它的地址是: https://github.com/didi/VirtualAPK 。

我们以它的宿主端为例,宿主端有如下几个模块:

其中buildSrc是virtualapk-gradle-plugin,为了便于调试我将其重命名为buildSrc。他们的依赖关系如下:

解释一下,app模块依赖CoreLibrary和buildSrc,CoreLibrary又依赖androidStub。为了大家更好理解,下面加一下log。

现在随便执行一个task,比如 ./gradlew clean ,那么将会输出如下日志,大家对比着日志,应该能明白Gradle脚本的执行顺序了吧。

可以看到,Gradle执行的时候遵循如下顺序:
1. 首先解析settings.gradle来获取模块信息,这是初始化阶段;
2. 然后配置每个模块,配置的时候并不会执行task;
3. 配置完了以后,有一个重要的回调 project.afterEvaluate ,它表示所有的模块都已经配置完了,可以准备执行task了;
4. 执行指定的task。

Ⅱ ./gradlew build:Could not find tools.jar. 解决方法

在Android Studio中执行 ./gradlew build 命令时报以下错误:

解决方法(在终端Terminal中执行以下命令):

先通过如下命令查看JDK位置

(升级OSX11.0.1后,执行这个携慧颂命令可能看到两个路径,一个是JDK的实际路径,
另一个是: /Library/Internet Plug-Ins/javaAppletPlugin.plugin/Contents/Home ,(网上有资料说这个是JRE的路辩郑径)。

打开 .bash_profile 配置文件:

添碧羡加JDK路径:

输入以下命令保存刷新:

注:根据自己的实际JDK路径修改上面的JDK路径

重新启动会话重新执行gradlew 命令即可。

Ⅲ Android系统命令行操作汇总

命令行打包
在工程根目录下
windows系统: gradlew clean assembleRelease
linux系统: gradle clean assembleRelease
根据包的build variant不同assemble后参数变化

命令行安装apk
adb install -r <apk文件路径名>
查看所有安装包
adb shell pm list package
卸载对应安装包
adb shell pm uninstall <包名>
命令行调起指定app的启动页
adb shell am start -n <包名>/<路径名>.LaunchActivity
设置主页面
adb shell am start com.android.settings/com.android.settings.Settings
安全
adb shell am start com.android.settings/com.android.settings.SecuritySettings
手机无线信息
adb shell am start com.android.settings/com.android.settings.RadioInfo
更多页面

Ⅳ 'gradlew' 不是内部或外部命令,也不是可运行的程序

接手枝早一个项目,使猛敏雀用命令打包的时候出现 'gradlew' 不是内部或外部命令,也不是可运行的程序

对比别的项目, 发现拿肆少了bat和shell文件

使用gradlew xxx的时候,我们并没有配置环境变量,猜想.bat或者.shell帮我们做了,验证一下

Ⅳ 'gradlew' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

情况1:宏困凳
配置环境变量。

新建系统变量:
变量名:GRADLE_HOME
变量值:C:UsersAdministrator.gradlewrapperdistsgradle-4.6-all-4.6

注意:变量名就用GRADLE_HOME,不要用其他的。

然尺败后再Path里增蔽旅加一项:%GRADLE_HOME%in

情况2:
先执行build setup下的wrapper任务,再在Terminal中执行gradlew就可以了。

Ⅵ CompilationFailedException解决

在Gradle版本升级后,编译运行项目时,提示org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed;但没有列出错误的具体原因。我们无法根据现有的编译log找陵槐出错误所在,如下:

根据报错内容,可以看出是执行compileDebugJavaWithJava任务时报的错误。异常为:TaskExecutionException(任务执行错误)并被告知编译失败异常(CompilationFailedException)。

我们可以使用gradlew命令在命令行中来单独执行报错任务,并打印出具体错误信息,我遇到的报错的taskName为compileDebugJavaWithJavac,那么命令如下:

运行后会尺搭友看到具体的错误,如下:

我这边遇到的问题单独执行报错任务后,也没有具体详细的错误信息(大部分异常可以直接看到详细的错误信息)

但是可以看到lib_common模块下databinding相关的报错信息,于是解决android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)相关的异常,这个异常是因为在xml文件中使用了get()方法,去掉get()方法后重新编译,编译成功。

android.databinding.tool.expr.Expr.resolveListeners异常解决链接:

在编译时遇到CompilationFailedException,并没有详细报错信息时,单独执行报错任务

然后获取到具体报错信息后,解决相应的枝喊报错问题,重新编译。

阅读全文

与gradlew命令相关的资料

热点内容
杜洋单片机官网 浏览:465
法国加密货币税务 浏览:26
stringslinux 浏览:942
gis服务器里文件如何处理 浏览:829
sec加密数字资产 浏览:930
winrar命令行压缩 浏览:790
java成员变量默认 浏览:491
解压神器喷泉视频 浏览:91
现代的语文书是哪里编译 浏览:108
知乎教孩子学编程 浏览:520
vivo加密的应用怎么解开 浏览:918
波形分析算法 浏览:528
php论坛实训报告 浏览:406
java日期字符串转换成日期 浏览:137
linuxsftp连接 浏览:936
光伏日发电量算法 浏览:127
小肚皮app怎么才有vip 浏览:618
php全角转换半角 浏览:929
java字符序列 浏览:541
杭州编译分布式存储区块链 浏览:577