Подтвердить что ты не робот

Gradle 2.3.0-alpha1 не работает с привязкой данных

У меня проблема после обновления до Android Studo 2.3 Canary сегодня.

Сборка завершилась без ошибок, но когда я запустил приложение, консоль gradle продолжает показывать:

android.databinding.annotationprocessor.ProcessDataBinding не найден

Здесь мой build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle 2.3.0-alpha1'
        classpath 'com.google.gms:google-services:3.0.0'
        classpath 'com.android.databinding:dataBinder:1.0-rc1'
        classpath 'me.tatarka:gradle-retrolambda:3.3.1'
        classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

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

Спасибо!

--- Обновлено --- Я боролся в течение нескольких дней, и я нашел, откуда возникает проблема. Я использую Parcels, Retrolamdas в своем приложении, обе библиотеки используют "apt" и эту проблему.

версия build.gradle(root):

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        classpath 'com.google.gms:google-services:3.0.0'
        classpath 'com.android.databinding:dataBinder:1.0-rc1'
        classpath "me.tatarka:gradle-retrolambda:3.2.3"
        classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

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

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

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

** build.gradle(приложение) ошибка версии **

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'android-apt'

...

dependencies {
    compile 'org.parceler:parceler-api:1.1.5'
    apt 'org.parceler:parceler:1.1.5'
}

И здесь исправлено. фиксированная версия build.gradle(root):

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0-alpha1'
        classpath 'com.google.gms:google-services:3.0.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'me.tatarka:gradle-retrolambda:3.3.1'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

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

build.gradle(приложение) фиксированная версия *

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

compile 'org.parceler:parceler-api:1.1.5'
annotationProcessor 'org.parceler:parceler:1.1.5'

Заключение. Я изменил версию retrolamdas repo и удалил плагин: "android-apt" .Я нашел полезные ссылки, если вы хотите посмотреть на детали.

https://github.com/johncarl81/parceler/issues/201 https://bitbucket.org/hvisser/android-apt/wiki/Migration

Надеюсь, что это поможет: D

4b9b3361

Ответ 1

Эта проблема вызвана тем, что мы переместили привязку данных к конфигурации annotationProcessor (а не предоставили). Если вы используете android-apt`, они конфликтуют, прекратите использовать его. У нас также была еще одна ошибка, которая мешала ему выбирать другие процессоры. Он уже исправлен и будет доступен в следующей альфа.

Исходный отчет об ошибке здесь: https://code.google.com/p/android/issues/detail?id=227612. Он также работает, если вам действительно нужно использовать 2.3.

Ответ 2

Я использовал android-apt. Я заменил annotationProcessor и решил свою проблему

Я удалил

применить плагин: 'com.neenbedankt.android-apt'

и изменился код библиотеки Dagger

compile 'com.google.dagger: dagger: 2.7'

annotationProcessor 'com.google.dagger: dagger-compiler: 2.7'

предоставлено 'org.glassfish: javax.annotation: 10.0-b28'

Ответ 3

Вы можете попробовать добавить apt 'com.android.databinding:compiler:2.3.0' в gradle зависимости

Ответ 4

Временное исправление, которое сработало для меня: 1. Измените версию gradle на: classpath 'com.android.tools.build:gradle:2.2.2'

  1. Отключить мгновенный запуск

  2. Дождитесь обновления от Google:)