Gradle
是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。
面向Java应用为主。当前其支持的语言C++、Java、Groovy、Kotlin、Scala和Swift,计划未来将支持更多的语言。
GradleVersion for class: JetGradlePlugin
JetGradlePlugin: gradle版本和android studio 版本匹配问题;
有的朋友打开别人的工程可能出现如下错误:
No such property: GradleVersion for class: JetGradlePlugin
这是由于gradle 设置的版本太高,而本地又没有该版本导致的
解决方法:
第一步:降低工程的build.gradle 版本号
比如 classpath ‘com.android.tools.build:gradle:3.0.1’
然后try again
第二部:替换gradle/wrapper 替换成3.0.1可使用的版本(我用的是4.1的版本)
gradle-wrapper.jar 和gradle-wrapper.properties要同时替换
transformDexArchiveWithExternalLibsDexMergerForDebug:jar包引入重复,产生冲突问题;
添加“multiDexEnabled true”到 defaultConfig
在Setting->Build,Execution,Deployment->Compiler中的Command-line Opptions中输入**–stacktrace**启用堆栈跟踪:得到冲突jar
Multiple dex files define Landroid/support/v7或者v4:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/app/NavUtils$NavUtilsImpl;
分析:
其实是libs下有个v4、v7包
通过compile fileTree(include: ‘*.jar’, dir: ‘libs’)来引入v4包的,把这个jar包删除,
改为gradle引入 compile ‘com.android.support:support-v4:25.3.1’问题解决,
可能是gradle引入的gradle才能自动解决重复的包,而通过jar包引入的gradle处理不了