problem 1:
Current version of Gradle Gradle 4.6 is not compatible with Kotlin plugin. Please use Gradle Gradle 4.9 or newer or previous version of Kotlin plugin.
原因:AndroidStudio Gradle版本不匹配
解决方案:将gradle-wrapper.properties文件的distributionUrl值改成对应的gradle版本即可。
比如:distributionUrl=https://services.gradle.org/distributions/gradle-5.4.1-all.zip
拓展:本人常用的一些配置信息,仅供参考:主目录下的build.gradle:
buildscript {
apply from: "common.gradle"
apply from: "projectModulesConfig.gradle"
apply from: "localConfig.gradle"
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'//我这里是和gradle-wrapper.properties对应的gradle版本。
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.70'//项目使用到kotlin语言,需要使用这个插件才能正常使用
}
}
allprojects {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://developer.huawei.com/repo' }
maven { url "https://jitpack.io" }
maven { url 'https://dl.bintray.com/umsdk/release' }
maven { url "https://maven.google.com" }
//maven { url mevanLocalPath }//看自己是否需要导入本地maven库
//google()
//jcenter()
}
//全局设置编码
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
主模块app下的build.gradle
android {
//统一签名配置,均使用项目根目录的 releaseKey.jks 文件
signingConfigs {
releaseKey {
keyAlias 'abc'
keyPassword '666666'
storeFile file('../releaseKey.jks')
storePassword '6666666'
v1SigningEnabled true
v2SigningEnabled true
}
}
compileSdkVersion Versions.compileSdk
defaultConfig {
applicationId "com.wyt.ai_wisdom_school"
minSdkVersion 19
targetSdkVersion 28
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters 'armeabi-v7a'
}
}
dataBinding {
enabled = true
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.releaseKey
}
debug {
signingConfig signingConfigs.releaseKey
}
}
flavorDimensions "product"
productFlavors {
//你的产品项目
王者荣耀{
dimension "product"
versionCode 1
versionName "1.0.1"
applicationId "com.tenxun.wangzherongyao"
}
吃鸡战场{
dimension "product"
versionCode 1
versionName "1.0.2"
applicationId "com.tenxun.chijizhanchang"
}
}
sourceSets {
main {
res.srcDirs += [
"src/main/denglu",
//"../dimen/700x1280"
......
]
}
//吃鸡战场
吃鸡战场{
res.srcDirs += [
"src/chijizhanchang/res_go_mapping",
]
}
}
// APK包输出流程控制:xxx_V0.20.2_64_debug_2019_05_10_19_32_10.apk
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith(".apk")) {
outputFileName = "${variant.flavorName}_V${variant.versionName}_${variant.versionCode}_${variant.buildType.name}_${getDate()}.apk"
}
}
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies{
}
gradle-wrapper.properties文件
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
gradle.properties(看自己需要)
org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
android.enableJetifier=true
kotlin.code.style=official
上面只是本人在许多大部分项目中经常用到的一些简单的配置,个人项目有特俗需求的酌情选择。毕竟适合自己的才是最好的。