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

DataBinding не работает после обновления Android Studio 2.3

DataBinding очень хорошо работал в моем проекте, но после обновления Android Studio 2.3 сегодня. Запустить "приложение" не удалось, поскольку следующая ошибка:

Error:(15, 40) Error: package com.javan.myrecorder.databinding not exist.
import com.javan.myrecorder.databinding.FragmentEventsBinding;
:app:compileMockDebugJavaWithJavac FAILED

Я просто обновляю студию Android и ничего не меняю. весь плагин - последний! Теперь мой вопрос: почему возникает эта ошибка и как я могу ее решить? любая помощь приветствуется!

Английский язык не мой родной язык; пожалуйста, извините за ошибки с моей стороны.


EDIT1

Как проект андроида googlesamples/android-architecture

  • git checkout todo-databinding
  • а затем запустите ./gradlew assembleDebug для сборки, выполните сбой из-за следующей ошибки:

полный журнал сборки


EDIT2 Я исправил эту проблему, выполнив Связывание данных после обновления до Gradle 2.3.

в build.gradle(app) добавить

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

..balabala

dependencies {
    apt 'com.android.databinding:compiler:2.3.0'
}

некоторый файл в моем проекте:

gradle-wrapper.properties

#Mon Mar 06 10:59:04 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

@petrnohejl @George Mount @Sa-Zad Prasla, Спасибо!

4b9b3361

Ответ 1

android-apt и, следовательно, использование apt устарело с Android Studio 2.2.
Следуя руководству по миграции на android-apt, вместо этого добавьте в свой build.gradle следующее:

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0' // use same gradle version!
    annotationProcessor 'com.android.databinding:compiler:2.3.0'
}

Если вы используете Kolin, вместо этого используйте:

apply plugin: 'kotlin-kapt'

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0' // use same gradle version!
    kapt 'com.android.databinding:compiler:2.3.0'
}

Ответ 2

Проблема возникает в предупреждении, которое трудно увидеть среди всех ошибок:

Предупреждение: использование несовместимых плагинов для обработки аннотации: android-apt. Это может привести к неожиданному поведению.

Если вы удалите apt, работает привязка данных.

Ответ 3

Я также столкнулся с той же проблемой. Я использовал ButterKnife и Dagger !!

Решено как следует

1) Удалить из файла Gradle уровня приложения:

 apply plugin: 'android-apt' 
 or apply plugin: 'com.neenbedankt.android-apt'

2) Удалить из файла Gradle уровня проекта:

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

3) И просто измените "apt на annotationProcessor" следующим образом:

 apt 'com.jakewharton:butterknife-compiler:8.5.1',
 apt "com.google.dagger:dagger-compiler:2.5"

To:

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1',
annotationProcessor "com.google.dagger:dagger-compiler:2.5"

Ответ 4

Связывание данных также сломалось для нас после обновления до Android Studio v2.3. Плагин GoLang Bind стал неспособным генерировать библиотеки .aar файлов

Наша проблема была решена с помощью комбинации версии GoMobile версии "+ eb90329 от 7 марта 2017", и плагин GoBind вернется к версии "0.2.6" (хотя текущая версия "0.2.8" )

Обновить GoMobile:

  $ go get -u -x golang.org/x/mobile/cmd/gomobile
  $ gomobile init -x

Вернуть плагин GoBind в build.gradle:

  plugins {
    id "org.golang.mobile.bind" version "0.2.6"
  }

Это решение работает с системами с версиями 1.7.1 и 1.8, а также версиями Android 2.1.2, 2.2.3 и 2.3.

Ответ 5

Две вещи Верните назад свой каталог gradel-wrapper.propertiesUrl в "https://services.gradle.org/distributions/gradle-2.14.1-all.zip" Измените путь класса версии gradle к предыдущей версии "'com.android.tools.build:gradle:2.2.3'"

P.S. Мгновенный запуск прекратит работу с ADT со старой версией gradle.

Ответ 6

Я тоже недавно загрузил последнюю версию Android 2.3.3, потому что я получал ту же ошибку в версии 2.2.3, т.е. Ошибка: не удалось разрешить: com.android.databinding: компилятор: 2.2.3, даже в последней версии, я получал ту же ошибку, я проверил структуру проекта. В Файл > Структура проектa > Проект версия Android Plugin была все еще 2.2.3, Я изменил его на 2.3.3, и сборка прошла успешно, и все работает плавно.

Ответ 7

Я решил эту проблему, изменив мою версию gradle на:

classpath 'com.android.tools.build:gradle:3.0.1'

Поскольку я использую Android Studio 3.0.1