赞
踩
在更新Gradle的依赖包时,经常会发生peer not authenticated的异常,导致Gradle无法编译。解决方法有两个,一个是使用VPN进行网络访问;二是添加下面代码:
jcenter {
url "http://jcenter.bintray.com/"
}
Gradle在编译时会执行大量的Task,同时生成很多中间文件,导致编译速度缓慢。解决该问题的最好的办法就是为电脑更好固态硬盘;其次可以在gradle.properties文件中增加如下代码:
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
同时在build.gradle中增加如下代码:
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
gradle.properties文件中的代码,表示开启Gradle的多线程和多核心支持。而build.gradle中的代码,表示开启Gradle的增量编译,增加编译的内存资源到4G。
对于编译时内存溢出问题,可以在gradle.properties文件中增加下面的代码:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
在java中可以通过调用Runtime.exec()方法来获取终端指令的数据。在Gradle中同样可以,如可以新建一个task,代码如下:
task mycmd {
println 'git log --pretty=oneline -l'.execute([],project.rootDir).text
}
如果需要调用git log –pretty=online -l指令,在终端中使用gradle mycmd即可。
在Gradle脚本中调用终端命令会降低编译速度,需要权衡利弊。
使用minifyEnabled指令可以对Android App进行混淆,同时可以对代码进行优化和精简,配合shrinkResources指令可以清除工程中无效的资源文件。
android {
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
在Setting-Build-Build Tools-Gradle标签中,选择Offline work,并指定默认的.gradle文件夹即可。
在更新Android Studio之后,可能会遇到Gradle的版本问题,导致编译失败,可以使用下面的步骤检查修改:
1.打开Setting界面,在Build-Build Tools-Gradle标签中,选择Project-Level setting,并勾选Use default gradle wrapper (recommend)。
2.使用当前版本的Android Studio创建一个空的Android工程并进行编译运行,目的是让Android Studio拉取可能新增的依赖包。
3.复制刚刚创建的Android工程的Gradle目录(其中有wrapper目录),并粘贴到发生错误的工程中,替换原有的Gradle目录。
4.检查根目录下的build.gradle文件,检查Gradle的plugin版本,使之与空Android工程中的plugin版本相同。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。