Привязка данных не работает после обновления Android Studio 2.3

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

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

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

английский-не мой родной язык, пожалуйста, простите любые ошибки на моем часть.


EDIT1

как проект android googlesamples / android-архитектура

  • 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-зад Прасла, спасибо!

7 ответов


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

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

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

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

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

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


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

решено следующим образом

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

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

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

classpath 'com.нинбеданкт.градля.Плагины: android-apt: 1.8'

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

apt ' com.jakewharton: butterknife-компилятор: 8.5.1', apt " com.гуглить.Кинжал:Кинжал-составитель:2.5"

в:

annotationProcessor 'ком.jakewharton: butterknife-компилятор: 8.5.1', annotationProcessor " com.гуглить.Кинжал:Кинжал-составитель:2.5"


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

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

Обновление GoMobile:

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

вернуть плагин GoBind в сборке.Gradle в:

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

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


две вещи Верните обратно свою обертку gradel.свойства distributionUrl к "https://services.gradle.org/distributions/gradle-2.14.1-all.zip" Измените путь к классам gradle version на предыдущую версию " com.андроид.инструменты.сборка: gradle: 2.2.3'"

P.S. Instant run прекратит работу над ADT со старой версией gradle.


Я тоже недавно загрузил последнюю версию Android studio 2.3.3, потому что я получал ту же ошибку в версии 2.2.3 i.e ошибка: не удалось решить: com.андроид.привязка данных:компилятор:2.2.3, даже в последней версии, я получал ту же ошибку,я проверил структуру проекта, в Файл>Структура Проекта>Проект, версия плагина для Android все еще была 2.2.3, я изменил ее на 2.3.3, и сборка прошла успешно, и все работает гладко.


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

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

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