简体   繁体   中英

Gradle couldn't find com.android.databinding:dataBinder:1.0-rc0

This is an old question which is irrelevant today. See Android developer's instruction. Applying Databinding to your projects is a lot easier now than four years ago.

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"
}

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 ***
    }
}

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.+"

}

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

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.

我有同样的问题,并通过更新Android sdk工具到24.3.3解决了它。

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'
}

Please, try to change classpath to 'com.android.tools.build:gradle:1.3.0-beta 2 ' 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

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

您应该更新SDK ,它将解决此问题。

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
    }
...
}

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

添加类路径后同步项目

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM