studio - viewmodel binding android




Gradle non è riuscito a trovare com.android.databinding: dataBinder: 1.0-rc0 (8)

Aggiornamento per l'ultimo Android Studio e l'ultimo Gradle

Non è necessario aggiungere il databinding:dataBinder dipendenza da databinding:dataBinder ora. Basta abilitare dataBinding in build.gradle a livello di app nel tag Android.

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

Come sto andando su Android Data binding Guide da https://developer.android.com/tools/data-binding/guide.html . Mi sono assicurato di eseguire Android Studio 1.3 (versione canary).

Seguendo le linee guida, ottengo questo errore:

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

Qualcun altro ha lo stesso problema? Grazie per l'aiuto.

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

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

Assicurati di avere Android Studio 1.3 o versioni successive

Il tuo progetto build.gradle dovrebbe assomigliare a questo:

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

E il tuo modulo build.gradle dovrebbe assomigliare a questo:

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

}

Ho avuto un problema in cui avevo scelto M Preview in modo che nulla funzionasse. Una volta modificati gli strumenti di compilazione in 22.0.1 e in targetSdkVersion in 22, tutto ha funzionato.


Dovresti aggiornare il tuo SDK e risolverà questo problema.


Dovresti aggiungere

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

build.grade che nella directory del progetto. quindi sincronizza il gradle


Ho avuto questo problema e l'ho risolto aggiungendo "jcenter" sotto allprojects.repositories nel mio build.gradle di livello superiore (stavo usando 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 ***
    }
}

Ho avuto un problema identico e l'ho risolto rimuovendo il plugin per Android-apt. Non sei sicuro di cosa sia in conflitto lì, ma qualcosa è.


Osservando il tuo errore Gradle couldn't find com.android.databinding:dataBinder:1.0-rc0 dovresti provare questo,

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

Per utilizzare DataBinding seguire tutti questi passaggi.

  1. Aggiorna il tuo Android Studio alla versione Android Studio 1.3 .
  2. Per impostare la tua application per utilizzare data binding , aggiungi data binding al percorso classe del tuo file build.gradle top-level build.gradle , proprio sotto "android".

    dependencies {
       classpath "com.android.tools.build:gradle:1.3"
       classpath "com.android.databinding:dataBinder:1.0-rc1"
    }
    
  3. Quindi assicurati che jcenter si trovi nell'elenco dei repository per i tuoi progetti nel file build.gradle di primo livello.

    allprojects {
       repositories {
           jcenter()
       }
    }
    
  4. In ogni modulo che si desidera utilizzare l'associazione dati, applicare il plug-in subito dopo il plug-in Android.

    apply plugin: 'com.android.application'
    apply plugin: 'com.android.databinding'
    
  5. Clean e build tua app.

Codice completo

file build.gradle top-level ,

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

file build.gradle 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'
}

Per maggiori dettagli Guida ai binding dei dati .

Per la demo completa Data Binding Android


Per favore, prova a cambiare classpath in "com.android.tools.build:gradle:1.3.0-beta 2 " e imposta buildToolsVersion " 23 rc2 ".

Non dimenticare di aggiornare i pacchetti SDK tramite il gestore SDK prima di farlo.

Qui puoi trovare ulteriori informazioni su Android Preview SDK: impostare l'SDK di anteprima





android-databinding