将Gradle版本升级到3.0.0后编译错误

时间:2017-10-26 08:14:15

标签: java android gradle

这是错误日志。

  

在OS独立路径中发现了多个文件' android / databinding / DataBindingComponent.java'

1 个答案:

答案 0 :(得分:3)

您的数据绑定似乎正在创建一些问题

如果您使用的是较新版本,请按以下方式使用

implementation 'com.android.databinding:library:1.3.1'
implementation 'com.android.databinding:adapters:1.3.1'

或旧版

 compile 'com.android.databinding:library:1.3.1'
    compile 'com.android.databinding:adapters:1.3.1'

另外,请确保在root gradle.build中添加了新的repo

repositories {
    maven {
        url 'https://maven.google.com'
    }
}

您也可以使用较新的Gradle包装器:

repositories {
        maven {
            google()
        }
    }

如果您在repo中使用了数据绑定,请确保添加了:

android {
    ....
    dataBinding {
        enabled = true
    }
}

这是最好的方法。

在根级别gradle.build使用下面的

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

并在gradle-wrapper.properties文件中更改包装器版本,如下所示

distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip

同样在您的应用级别build.gradle中,请确保您使用的是26版本,如下所示

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "com.xxxx"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}