22

这是一个古老的问题,今天已无关紧要。请参阅 Android 开发人员的说明。现在将数据绑定应用于您的项目比四年前要容易得多。

当我正在阅读来自https://developer.android.com/tools/data-binding/guide.html的 Android 数据绑定指南时。我已经确定我正在运行 Android Studio 1.3(金丝雀版本)。

按照指南,我收到此错误:

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

有没有其他人有同样的问题?谢谢你的帮助。

应用程序构建.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()
    }
}

模块 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"
}
4

12 回答 12

16

我遇到了这个问题,并通过在我的顶级 build.gradle 中的 allprojects.repositories 下添加“jcenter”来解决它(我一直在使用 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 ***
    }
}
于 2015-08-14T19:56:32.343 回答
9

同步 build.gradle 文件时出现错误。

错误:无法解决:com.android.databinding:library:1.0-rc0

错误:无法解决:com.android.databinding:适配器:1.0-rc0

我终于找到了解决方案。

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

}
于 2015-07-22T08:16:44.787 回答
6

通过查看您的错误Gradle couldn't find com.android.databinding:dataBinder:1.0-rc0,您应该尝试这样做,

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

要使用DataBinding,请遵循所有这些步骤。

  1. 更新您Android StudioAndroid Studio 1.3版本。
  2. 要设置您application的使用data binding,请添加data binding到文件的类路径top-level build.gradle,就在“android”下方。

    dependencies {
       classpath "com.android.tools.build:gradle:1.3"
       classpath "com.android.databinding:dataBinder:1.0-rc1"
    }
    
  3. 然后确保 jcenter 位于顶层 build.gradle 文件中项目的存储库列表中。

    allprojects {
       repositories {
           jcenter()
       }
    }
    
  4. 在每个要使用数据绑定的模块中,在 android 插件之后应用插件。

    apply plugin: 'com.android.application'
    apply plugin: 'com.android.databinding'
    
  5. Cleanbuild你的应用程序。

完整代码

top-level build.gradle文件,

// 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文件,

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

有关更多详细信息数据绑定指南

完整的演示数据绑定 Android

于 2015-08-03T06:50:17.343 回答
3

确保您拥有Android Studio 1.3或更高版本

您的项目 build.gradle 应如下所示:

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()
    }
}

你的模块 build.gradle 应该是这样的:

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'])

}

我遇到了一个问题,我的目标是 M Preview,所以没有任何效果。一旦我将构建工具更改为 22.0.1,并将 targetSdkVersion 更改为 22,一切正常。

于 2015-06-29T13:49:27.303 回答
3

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

于 2015-08-05T15:12:00.880 回答
2

正如文档所说

要使用数据绑定,需要 Android Plugin for Gradle 1.5.0-alpha1 或更高版本。

我在 build.gradle 项目中添加了以下行:

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

然后添加:

dataBinding {
        enabled = true
    }

像这样到您的 build.graddle 模块应用程序:

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'
}
于 2015-11-13T13:01:27.363 回答
2

更新最新的 Android Studio 和最新的 Gradle

您现在不需要添加databinding:dataBinder依赖项。只需build.gradle在 android 标签的应用级别启用 dataBinding 即可。

android
{
...
    dataBinding {
        enabled = true
    }
...
}
于 2018-08-01T18:55:29.810 回答
1

请尝试将类路径更改为“com.android.tools.build:gradle:1.3.0-beta 2 ”并设置 buildToolsVersion“ 23 rc2 ”。

在此之前不要忘记通过 SDK 管理器更新 SDK 包。

在这里您可以找到有关 Android Preview SDK的更多信息:设置 Preview SDK

于 2015-06-06T09:49:22.770 回答
1

我有一个相同的问题,并通过删除 android-apt 的插件来解决它。不知道那里有什么冲突,但有些东西是。

于 2015-07-21T23:42:22.093 回答
1

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

于 2016-07-13T03:55:57.703 回答
-1

你应该添加

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

build.grade 在项目目录中。然后同步 gradle

于 2015-09-07T03:21:13.887 回答
-2

添加类路径后同步您的项目

于 2015-06-12T09:06:09.170 回答