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, Спасибо!
Ответы
Ответ 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