Gradle couldn't find com.android.databinding:d

2019-02-02 05:46发布

问题:

As I am going over Android Data binding Guide from https://developer.android.com/tools/data-binding/guide.html. I have made sure I am running Android Studio 1.3 (canary version).

Following the guidelines, I get this error:

Gradle sync failed: could not find com.android.databinding:library:1.0-rc0

Has anyone else have the same problem? Thanks for your help.

App build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0-beta1'
        classpath "com.android.databinding:dataBinder:1.0-rc0"
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

Module build.graddle

apply plugin: 'com.android.application'
apply plugin: 'com.android.databinding'

apply plugin: 'android-apt'
def AAVersion = '3.3'
def MyProject = 'com.commonsware.android.frw.filesdemo'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }
}

repositories {
    mavenCentral()
}

apt {
    arguments {
        androidManifestFile variant.outputs[0].processResources.manifestFile
        resourcePackageName "$MyProject"
    }
}

android {
    compileSdkVersion 22
    buildToolsVersion "22"

    defaultConfig {
        applicationId "$MyProject"
        minSdkVersion 17
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions{
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
    }

    dexOptions {
        preDexLibraries = false
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'

    compile "com.squareup:otto:1.3.6"
    compile "commons-io:commons-io:+"
    compile 'com.fasterxml.jackson.jr:jackson-jr-all:2.5.0'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'

    apt "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"
}

回答1:

I had this problem and solved it by adding "jcenter" under allprojects.repositories in my top-level build.gradle (I had been using mavenCentral).

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.android.databinding:dataBinder:1.0-rc1'
    }
}

allprojects {
    repositories {
        mavenCentral()
        jcenter() // <=== *** Adding this fixed it ***
    }
}


回答2:

I got errors when I sync build.gradle files.

Error:Failed to resolve: com.android.databinding:library:1.0-rc0

Error:Failed to resolve: com.android.databinding:adapters:1.0-rc0

And I finally found the solution.

dependencies {

    // instead of the below pathes...
    //classpath "com.android.tools.build:gradle:1.3.0-beta2"
    //classpath "com.android.databinding:dataBinder:1.0-rc0"

    // I used the following classpathes.... It works!
    classpath "com.android.tools.build:gradle:1.3.+"
    classpath "com.android.databinding:dataBinder:1.+"

}


回答3:

By looking at your error Gradle couldn't find com.android.databinding:dataBinder:1.0-rc0 you should try this instead,

classpath "com.android.databinding:dataBinder:1.0-rc1"

To use DataBinding follow all these steps.

  1. Update your Android Studio to Android Studio 1.3 version.
  2. To set up your application to use data binding, add data binding to the class path of your top-level build.gradle file, right below "android".

    dependencies {
       classpath "com.android.tools.build:gradle:1.3"
       classpath "com.android.databinding:dataBinder:1.0-rc1"
    }
    
  3. Then make sure jcenter is in the repositories list for your projects in the top-level build.gradle file.

    allprojects {
       repositories {
           jcenter()
       }
    }
    
  4. In each module you want to use data binding, apply the plugin right after android plugin.

    apply plugin: 'com.android.application'
    apply plugin: 'com.android.databinding'
    
  5. Clean and build your app.

Complete code

top-level build.gradle file,

// 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.3'
        classpath "com.android.databinding:dataBinder:1.0-rc1"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

module-level build.gradle file,

apply plugin: 'com.android.application'
apply plugin: 'com.android.databinding'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.example.packagename"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1'
}

For more detail Data Binding Guide.

For Complete demo Data Binding Android



回答4:

Make sure you have Android Studio 1.3 or higher

Your project build.gradle should look something like this:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0-beta1'
        classpath "com.android.databinding:dataBinder:1.0-rc0"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

And your module build.gradle should look something like this:

apply plugin: 'com.android.application'
apply plugin: 'com.android.databinding'

android {

    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.my.appId"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

}

I had a problem where I was targeting M Preview so nothing worked. Once I changed the build tools to 22.0.1, and the targetSdkVersion to 22, everything worked.



回答5:

I had the same issue and solved it by updating android sdk tools to 24.3.3.



回答6:

As the Documentation said

To use data binding, Android Plugin for Gradle 1.5.0-alpha1 or higher is required.

I have added the following line to build.gradle project :

// 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.5.0-beta2"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

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

and then add the :

dataBinding {
        enabled = true
    }

to your build.graddle module app like this :

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "gujarat.databinding"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dataBinding {
        enabled = true
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:support-v4:23.1.1'
}


回答7:

Please, try to change classpath to 'com.android.tools.build:gradle:1.3.0-beta2' and set buildToolsVersion "23 rc2".

Don't forget to update SDK packages via SDK manager before doing that.

Here you can find more information about Android Preview SDK: Set Up the Preview SDK



回答8:

I had an identical issue, and solved it by removing the plugin for android-apt. Not sure what's conflicting there, but something is.



回答9:

You should update your SDK and It will resolve this issue.



回答10:

Update for latest Android Studio & latest Gradle

You don't need to add databinding:dataBinder dependency now. Just enable dataBinding in app level build.gradle in android tag.

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


回答11:

You should add

classpath 'com.android.tools.build:gradle:1.3.0'
classpath "com.android.databinding:dataBinder:1.0-rc0"

build.grade which in project Directory. then Sync the gradle



回答12:

Sync your project after adding classpath