在本文中,您将会了解到关于Android进阶——最大程度提升你的AndroidStudio中Gradle编译速度完全攻略的新资讯,并给出一些关于AndroidGradle编译学习日记之一(搭建Grad
在本文中,您将会了解到关于Android 进阶——最大程度提升你的Android Studio 中Gradle编译速度完全攻略的新资讯,并给出一些关于Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)、Android Gradle编译学习日记之二(使用 Gradle 编译 Eclipse,引入依赖资源以及迁移 Android Studio)、Android Studio Gradle编译输出信息乱码、Android Studio 升级后Gradle编译报错问题的实用技巧。
本文目录一览:- Android 进阶——最大程度提升你的Android Studio 中Gradle编译速度完全攻略
- Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)
- Android Gradle编译学习日记之二(使用 Gradle 编译 Eclipse,引入依赖资源以及迁移 Android Studio)
- Android Studio Gradle编译输出信息乱码
- Android Studio 升级后Gradle编译报错问题
Android 进阶——最大程度提升你的Android Studio 中Gradle编译速度完全攻略
文章大纲
- 一、.gradle 、.gradle\caches及 .m2 目录
- 1 .gradle和.gradle\caches目录
- 1.1、解析xxx\gradle\wrapper\gradle-wrapper.properties文件下载Gradle
- 1.2、解析根Project和Module目录下build.gradle脚本加载第三方库
- 2、 .m2
- 二、Android Studio 使用Gradle 编译提升攻略
- 1、使用本地离线Gradle压缩包
- 2、利用本地搭建的maven 仓库
- 3、利用国内maven仓库镜像地址替代原始仓库
由于种种原因在内地使用jcenter、mavenCentral及google等远程仓库时(毕竟都是国外的服务器),Gradle Sync会很慢,google仓库甚至需要科学上网才能访问,这是造成Gradle 编译的速度缓慢的重要原因之一,当然如果cpu 不给力,编译的项目依赖库关系复杂也是原因之一。
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置。
一、.gradle 、.gradle\caches及 .m2 目录
默认情况Windows 下 .gradle 和 .m2 目录的路径存放在C:\Users\xxxx下,其中**.gradle 作为Gradle的Home 目录存放着所有使用Gradle下载的库文件和jar包**,而**.m2 目录则是存放着本地Maven仓库中下载的库文件**
1 .gradle和.gradle\caches目录
1.1、解析xxx\gradle\wrapper\gradle-wrapper.properties文件下载Gradle
这个properties文件里配置了Gradle :
- distributionBase——Gradle 的HOME目录
- distributionPath
- zipStoreBase——Gradle的缓存HOME目录
- zipStorePath ——Gradle 的缓存路径
- distributionUrl——指定Android Studio 加载Gradle 的源地址。
#Sun Apr 26 22:25:12 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
Android Studio 编译时会自动解析xxx\gradle\wrapper\gradle-wrapper.properties文件,并从distributionUrl 节点中拿到Gradle 插件的Uri,如果配置的是http(s),则自动到对应的Uri中下载并缓存到本地的对应的 .gradle目录下,路径Uri里常见的形式有:
- https://services.gradle.org/distributions/gradle-5.1.1-all.zip 首次从网络链接去下载Gradle
- http://services.gradle.org/distributions/gradle-5.1.1-all.zip 首次从网络链接去下载Gradle
- file:/// D://Android//Gradle//gradle-5.1.1-all.zip 从本地对应路径下去获取Gradle
首次使用新版本的Gradle时,无论是本地解压还是网络下载成功之后,都会缓存到.gradle\wrapper\dists下,再次使用相同版本时就会直接先从.gradle\wrapper\dists去加载
注意:Gradle 自身的版本和Android Gradle Tools 插件的版本配对关系。
1.2、解析根Project和Module目录下build.gradle脚本加载第三方库
默认的根Project目录下的build.gradle,有两个作用:下载Google 开发的Android Gradle插件和指定Module加载第三库时查找的maven仓库。
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
}
}
//配置给该Project下其他所有Module 引入依赖库时所用的源仓库
allprojects {
repositories {
google()
jcenter()
}
}
Android Studio 编译时自动解析build.gradle 构建脚本,首先解析Project 根目录下的build.gradle文件,首先是解析buildscript 节点,到repositories 配置的maven 仓库中对应的的路径(由dependencies 节点下的classpath属性)去下载对应的Android gradle插件和第三方的库,以上文件的含义是首先去google这个maven库下去加载“com.android.tools.build:gradle” 版本为3.4.0 的Android Gradle插件,如果google 仓库找不到则继续查找jcenter 仓库,找到则缓存到本地目录下;另外一个allprojects 节点则是对应Moudle目录下需要引入第三方库时候查找的maven库,加载完毕之后也会缓存到.gradle/caches对应目录下:
当你在**Module下的build.gradle脚本里
dependencies {
implementation filetree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:'+rootProject.ext.androidxAppcompat
implementation 'com.alibaba:fastjson:1.1.54.android'
}
引入第三库成功之后就会被缓存到xxx.gradle\caches\modules-2\files-2.1对应目录下:
另外引入成功之后也会在Android Studio 的项目下External Libraries显示。
2、 .m2
.m2 目录则是本地Maven仓库的目录,更多请参见开发 Gradle 插件系列文章。
二、Android Studio 使用Gradle 编译提升攻略
此处的措施不包含通过优化Android Studio 的配置参数进行优化。
1、使用本地离线Gradle压缩包
首先到 Gradle 官网下载对应版本的完整压缩包文件 ,
下载压缩包之后不需要解压直接存放到本地计算机的路径就好,比如存放到计算机下的D:\Android\Gradle\gradle-5.1.1-all.zip(Windows上的路径)配置时需要进行格式转换
...
distributionUrl=file:///D://Android//Gradle//gradle-5.1.1-all.zip
在最新版的Android Studio 3.6.x 时,在Gradle 栏目下有个Gradle 开关,切换为offline模式时,意味着所有库均使用本地缓存模式,若没有缓存会直接报错,而不是所谓的单纯设置Gradle的离线模式,第一次依赖时需要切换为在线模式,否则本地缓存没有,也不能去对应的地址下载,编译时找不到依赖库就会报错。
Android Studio 3.6 的Gradle 开关或许以上理解不够准确,但应该也不会差得太远,仅供参考。
2、利用本地搭建的maven 仓库
可以利用Nexus或者Artifactory 搭建自己的maven仓库,替代原始仓库jcenter()、mavenCentral()及google()等
Artifactory 的详细使用见下文。
buildscript {
repositories {
maven{
url 'http://localhost:8081/artifactory/list/android-basic-group/'
}
//如果你本地maven仓库 已经拥有了足够的库,那就不需要额外配置了,因为加载的顺序是从上到下的
google()
jcenter()
}
}
allprojects {
repositories {
maven{
url 'http://localhost:8081/artifactory/list/android-basic-group/'
}
google()
jcenter()
}
}
3、利用国内maven仓库镜像地址替代原始仓库
优先使用本地maven仓库,再使用 阿里云仓库服务 的代理镜像库作为下载源。
buildscript {
repositories {
maven{
// 替代 google()
url 'http://maven.aliyun.com/repository/google'
}
maven{
//替代 jcenter()
url 'http://maven.aliyun.com/repository/jcenter'
}
//替代public 库————jcenter和mavenCentral的聚合仓库
maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
allprojects {
repositories {
maven{
url 'http://maven.aliyun.com/repository/google'
}
maven{
url 'http://maven.aliyun.com/repository/jcenter'
}
maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
如果你的本地maven仓库里面保存的库资源不够充分,也可以混合maven仓库镜像库使用。
Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)
大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢
转载请标明出处(http://my.oschina.net/u/1785888/blog),再次感谢
Google 在最近正式推出了 Android Studio 1.0版本,开发者首页的默认开发工具也已经更改成了 Android Studio,我想我们是时候全面转型到 Android Studio 开发了。
其实抛开界面因素,Android Studio 与 Eclipse ADT 构建 Android 应用主要的不同在于构建工具的改变, Eclipse 是通过 ant 进行项目构建,Android Studio 是通过 Gradle进行项目构建。
首先我们先来看看Google 为什么选择 Gradle 进行项目构建:
使用自动化构建工具能够帮助我们降低浪费在文件编译中的时间,目前常用的自动化构建工具有 ant, maven, gradle 三种。
maven 相对于 ant 所拥有的一个巨大优势就是maven 拥有一个数量庞大的三方资源库,你可以通过配置构建文件从网上引入各种资源包,而 ant 则需要
gradle 其实相当于 maven 的一个增量包,它能够使用 maven 所有的资源库,并且他所使用的构建文件的语法更加简单,入手容易。并且 Gradle 进行多渠道打包非常简单,这也是我们使用 Gradle 的一个非常重要的因素。
那么现在我们从头开始,构建我们的第一个 Android 项目
一、搭建 Gradle 编译环境
首先我们需要从 Gradle 的官网(http://www.gradle.org)上下载最新的 Gradle 包,目前最新的 Gradle 版本为 2.2.1
下载完毕之后,进行解压不再多说,之后我们开始配置 Gradle 的环境变量。
在 Linux 以及 Mac上等类 Unix 系统上你可以在你的环境变量文件,例如 /etc/profile, ~/.bashrc 中进行配置,相关的配置信息如下:
export GRADLE_HOME=/Users/kifile/Applications/gradle
PATH=${PATH}:${GRADLE_HOME}/bin
对于 Windows 的环境变量配置请自行查询,我这儿就不再详述了。
配置好环境变量以后,在终端中执行以下命令:
source /etc/profile
请注意将/etc/profile 更改为你自己更改过的额环境变量文件
执行完命令之后,你在终端输入
gradle -v
能够看到以下输出:
就说明你已经成功的配置好了Gradle 的环境变量
配置好了 Gradle 的环境变量之后,我们还需要再配置一下 Android 的环境变量,方法如上,代码如下:
export ANDROID_HOME=/Users/kifile/Applications/android-sdk-macosx
export ANDROID_NDK_HOME=/Users/kifile/Applications/android-ndk-r10b
配置这两个环境变量的目的主要在于告诉 Gradle 你当前的 Android 路径在哪里,以便查找对应的编译工具
二、建立一个简单地 Android 项目
(1)搭建 Android 目录结构
对于一个最基本的 Android 项目而言,他的目录结构应该是这样的:
java 目录用于存放 java 源码,res 目录用于存放资源文件(当然存放源码的路径我们可以自行设定,但是对于一个最基本的范例,我们就是用 Android 项目默认的结构就好了),build.gradle 文件用于存放项目构建信息
(2)配置 build.grade 文件
对于 Android 项目,他的 build.grade 文件样式如下:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath ''com.android.tools.build:gradle:1.0.0-rc1''
}
}
apply plugin: ''android''
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
}
buildscript 中声明了他会使用 maven 的中心仓库来获取依赖包,并且使用 1.0版本的 Android Gradle 编译工具进行编译
apply 一行则定义我们使用的插件类型为 android
android 标签中则是定义的相关项目信息,例如编译的 sdk 版本,以及编译的工具版本号
(3)配置 AndoridManifest.xml
AndroidManifest.xml 文件就按照最基本的 Android 配置就好了,反正只是一个测试而已,我的源文件如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kifile.library.download" >
<application>
</application>
</manifest>
(4)开始编译
编译之前我们先通过终端进入项目的顶层目录,就是上面目录结构中的 android 目录中
进入目录以后,我们在终端执行
gradle check
检查 Gradle 构建能否正常运行,在第一次运行的时候,你会发现耗时比较久,这是因为他需要去 maven 中心仓库获取依赖包,就是上面在 buildscript 中描述的com.android.tools.build:gradle:1.0.0-rc1
检查完成之后,如果成功会显示类似于下面的图:
其中 黄色的 UP-TO-DATE 代码部分资源未经过更改不必重新编译。
check 完成之后,我们执行:
gradle tasks
我们能够看到他将 Gradle 目前支持的编译类型都显示了出来:
其中Build tasks 部分为你可以构建的任务,我们这里就简单执行
gradle assembleDebug
来编译一个 Debug 类型的应用就好了,编译完成之后,显示 SUCCESSFUL,你可以在你的目录对应路径build/outputs/apk下看到编译出的 Apk 文件了
恭喜你,你已经成功了完成了你的第一个 Gradle 编译 android 应用
Ok,今天暂时就先写到这里,剩下的随后补上。
Android Gradle编译学习日记之二(使用 Gradle 编译 Eclipse,引入依赖资源以及迁移 Android Studio)
大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢
转载请标明出处(http://my.oschina.net/u/1785888/blog),再次感谢
Android Gradle编译学习日记(基于 Android Studio 1.0):
Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)
在上一篇文章中,我简单介绍了一个 Gradle 环境变量的搭建,以及如何使用 Gradle 编译 Android 项目,但是对于国内的大部分开发人员来说,我们通常都是使用 Eclipse进行 Android 开发,对于大部分人而言从一个平台迁移到另一个平台所花费的成本太高。因此本文就将介绍如何通过 Gradle 编译 Eclipse 代码结构下的Android 项目,以及将 Eclipse 下的 Andorid 项目迁移到 Android Studio 下,让大家更加轻松的转移项目代码。
一、在 Eclipse 下创建一个 Android 项目
相信大家都不希望我再这里演示如何在 Eclipse 下创建一个 Android 项目,因此我也不再花费时间在这上面,先上传一张创建后的项目结构图:
再来一张 Gradle 的默认目录结构图:
通过对比两个目录结构图,我们可以发现,Eclipse 默认的代码目录结构和 Gradle 支持的代码目录结构是不同的,因此,如果我们使用上一篇文章中的方法直接进行 Android 项目编译,会发现无法进行正常编译,原因就是没有找到对应的 Android 配置文件。
二、配置 Gradle 的资源路径
为了让 Gradle 能够找到响应的源文件和资源文件,我们先看一下Gradle 的目录结构,从第二张图中我们能够发现 Gradle 的默认编译结构中将程序源码分为了几个不同的部分:java、jni、rs、aidl,而 Eclipse 的目录中java 和 aidl 是放置在同一个目录下的,所以我们需要在 build.gradle 文件根据项目结构定义好对应的路径。
定义路径位置的代码如下:
android {
sourceSets {
main {
manifest.srcFile ''AndroidManifest.xml''
java.srcDirs = [''src'']
resources.srcDirs = [''src'']
aidl.srcDirs = [''src'']
renderscript.srcDirs = [''src'']
res.srcDirs = [''res'']
assets.srcDirs = [''assets'']
}
androidTest.setRoot(''tests'')
}
}
请把 sourceSets 部分添加到 build.gradle 中的 android 域内。
其实 Gradle 默认的源码路径设置位置应该是在最外层,但是由于Andorid 插件拥有自己的代码设置,因此我们将 sourceSets 放置到 android 域内。
之后执行
gradle check
你现在应该能够进行正常的编译工作了,具体如何编译请查看我上一篇文章。
三、引入项目依赖包
What?你出错了,不可能吧?
当然其实这是可能的,注意查看第一张图,里面除了 TestGradle 目录以外,还有一个 appcompat_v7,这是项目的依赖包,如果你不进行配置,那么 Android 编译时无法找到他,自然会报错。
现在我们来看看如何将依赖包引入 Android,让他能够正常编译
(1)使用 maven
之前我就说过,Gradle 能够使用 Maven 的几乎所有特性,因此当我们需要使用依赖包的时候,而且该依赖包在 maven 中央库中存在的时候,我们不妨直接在配置文件中配置,配置方法也十分简单地说,以 appcompat_v7包为例,在 build.gradle 的最外层加入以下信息:
dependencies {
compile ''com.android.support:appcompat-v7:21.0.3''
}
compile 代表着你希望在编译的时候将某个 maven 包打入程序中,而后面的信息则是对应 maven 包的相关信息,方便从 maven 中央仓库中进行获取。
然后你再执行一下:
gradle check
现在是不是提示你程序能够正常打包了呢。
(2)引入 jar 包
有时候我们在 libs 目录下有存放 jar 包类型或者 so 链接库类型的依赖资源,但是当你进行编译时,你会发现找不到这些资源,原因只有一个: Gradle 不知道你需要编译的资源对象在哪里,因此我们需要手动在 build.gradle 进行路径配置,大致方法与上面的类似,我就简单叙述一下就好了。
打开你的 build.gradle,在 dependencise 域,没错,就是刚才我们添加 appcompa_v7包的那个域,在域中我们加入一下代码:
compile fileTree(dir: ''libs'', include: [''*.jar''])
该代码就将所有在 libs 目录下的 jar 包引入了,如果要引入 so 库,再加一句
compile fileTree(dir: ''libs'', include: [''*/*.so''])
(3)引入依赖项目
如果你实在找不到对应的 maven 项目或者不能单纯使用 jar 包进行引入,实在需要使用一个依赖工程,那我们就得考虑通过将依赖项目先转换为 Gradle 类型的 Android Library,然后再进行项目关联。
面对这种情况,我们可以像 Eclipse 一样将应用项目和依赖工程放在同一目录下,方便关联。
我们先将 TestGradle 中 build.gradle 中关于 appcompat 依赖包得引用去掉
在顶层目录中,我们建立一个 build.gradle 和 setting.gradle 文件分别存放项目依赖。
build.gradle 用于存放通用的配置信息,例如通用依赖:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:1.0.0''
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
setting.gradle 用于存放项目信息,例如这里,我们可以像这样命名:
include '':TestGradle'','':appcompat_v7''
TestGradle 和 appcompat_v7分别为应用项目和依赖工程的名称,如果你的工程是在某个子目录下,那么你可以使用类似于‘:libraries:lib1''这种形式标明在 libraries 文件夹下的 lib1文件夹也是一个 Gradle 项目
之后我们进入 appcomp_v7目录,建立对应的 build.gradle 配置文件,由于我们在上层目录中已经创建了一个 build.gradle 并且配置了通用的依赖信息,因此在这个配置文件中我们可以不必写入 buildscript 的相关属性。
apply plugin: ''com.android.library''
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
}
这里需要留意的是,这里的插件类型是'' com.android.library'' 标明他是一个依赖包。另外如果你的项目配置是 Eclipse 目录类型,请根据上文,配置对应的源码位置。
如此一来,你已经配置好了相关的依赖工程,接下来我们需要将这个依赖工程配置到主工程中。
方法为在主工程 build.gradle 中加入
dependencies {
compile project('':appcompat_v7'')
}
之后你再使用 Gradle 命令行就能够针对本地的依赖库进行编译。
四、使用 Android Studio 引入工程
这里简单说说如何通过 Android Studio 使用 Eclipse 的项目目录结构进行开发。
其实方法并不复杂,通过上面的步骤我们已经成功的配置好了一个 Gradle 工程的相关环境,因此我们只需要通过点击 File->ImportProject,选中 appcompat_v7和 TestGradle 所在的父目录即可,然后一路 Next,之后,你能看到你的项目被引入到了 Android Studio 中
除了代码结构以外,与 Android Studio 建的一模一样有没有!!!
本篇博文就到这里,主要介绍了如何通过建立 Gradle配置文件将 Eclipse 项目彻底导入 Android Studio。希望大家喜欢,看到这里的点个赞可好。
Android Studio Gradle编译输出信息乱码
有时候Android Studio Gradle编译时输出的信息是乱码,这是因为输出信息和信息的窗口不统一。
首先,我们先修改设置里的文件编码
Settings->Editor->File Encodings
打开都改成UTF-8
方法一
Android Studio help 菜单中“Edit Custom VM Options”
添加如下代码
-Dfile.encoding=UTF-8
添加后重新编译工程,如果还是乱码,需要关闭Android Studio重新启动有效。
方法二
在对应的module的build.gradle 中添加如下代码
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
缺点是如果module比较多就挺麻烦
方法三
增加环境变量
打开电脑高级设置
在环境变量中增加一个GRADLE_OPTS,值为-Dfile.encoding=UTF-8,记得保存
注意:保存完成后,如果还是乱码,需要关闭Android Studio 重新启动有效
Android Studio 升级后Gradle编译报错问题
又快一年没有使用AS了,正好要查看一个Android项目代码,干脆升级到新版试试看新变化,旧版本为3.1.2,目前最新版本为3.4.2,AS的升级是很简单的直接update等待即可.
升级完了,打开GIT下载的项目,启动重新编译,额额额,出现了编译错误,无法编译通过,关键是没有详细的错误提示,“error:failed link file resources”资源文件无法找到。
这个问题通常出现为资源文件出现了问题无法正常使用,可能是layout中使用的资源被删除了或者是文件名错误,或者是资源格式错误等等,具体是什么错误呢,这里没有给出详细提示.
后来发现AS一直提示升级Gradle,好吧每次升级AS好像都要升级Gradle,那就升级吧,提示升级到Gradle5.1.1,OK升级,关于Gradle的升级方法有很多种,如果能直接update成功最好,如果失败了,可以直接到官网下载相应的版本解压到AS安装目录下的Gradle下即可.
gradle安装参照:android studio gradle 两种更新方法更新
升级后记得给AS重新指定gradle,选择“use local gradle distribution”.我是手动下载的版本5.4(AS3.4.2要求gradle最低版本5.1.1,由于最新版本已经到了5.5这里使用5.4稳定版)
查看项目的build.gradle,更新到新版本,一般是和AS使用同一个版本号,如下图红色部分.
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
google()
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:3.4.2''
classpath ''com.github.dcendents:android-maven-gradle-plugin:2.0''
}
}
allprojects {
repositories {
mavenCentral()
google()
jcenter()
maven { url ''https://www.jitpack.io'' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
更新后重新编译,依然是“error:failed link file resources",不过这次出现了详细的错误提示:
很多很多,有资源文件丢失的,layout文件缺失的,有多语言配置在默认语言strings里未设置的等等,按照提示一个一个把错误改正.再重新编译就好了.
这样一圈下来又是几个小时,似乎每次升级AS都会出现编译不通过的情况,不知道google什么时候能把AS升级Gradle升级做到向下兼容,不然就项目升级新版AS始终是个麻烦问题.
这也难怪IdeaUI java开发还是使用Maven构建的比较多,至少每次升级没有发现需要来回改动源码的情况,看来gradle还需要再健壮稳定些才能更好的推广,毕竟稳定兼容还是比较重要的.
我们今天的关于Android 进阶——最大程度提升你的Android Studio 中Gradle编译速度完全攻略的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)、Android Gradle编译学习日记之二(使用 Gradle 编译 Eclipse,引入依赖资源以及迁移 Android Studio)、Android Studio Gradle编译输出信息乱码、Android Studio 升级后Gradle编译报错问题的相关信息,请在本站查询。
本文标签: