2015-10-26 1 views
2

Я пытаюсь использовать привязку данных в моем существующем проекте, но я не могу его построить.Связывание данных: не удается найти класс символов BR

Использование в проекте build.gradle:

dependencies { 
    classpath 'com.android.tools.build:gradle:1.3.1' 
    //Data Binding Beta 
    classpath "com.android.databinding:dataBinder:1.0-rc4" 

    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7+' 

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

применения

apply plugin: 'com.android.databinding' 
apply plugin: 'com.neenbedankt.android-apt'` 

и в модуле:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    apt 'com.android.databinding:compiler:1.0-rc1+' 
} 

Я пытался использовать привязки данных с RecyclerView/Фрагмент/ViewHolder/адаптер. . Я использую Android Studio 1.4.1. С compileSdkVersion 23 и buildToolsVersion "23.0.1". Я пробовал это без apt, разные версии градиента, доказательство читало мои классы/xml .. Я также использую еще Butterknife (так как мой проект слишком велик, чтобы сразу менять все) и другие (но не имеющие соответствующего значения) библиотеки. Я синхронизировал и перестраивал свой проект, я закрыл/открыл Android Studio, я пытался сделать недействительными кеши. С самого начала я создаю «свежий» пример, который отлично работает.

Мои методы получения в моем «классе данных» являются @Bindable.

Кроме того, пакет привязки данных не создается. (сообщение об ошибке говорит, что его не существует) и Error:cannot generate view binders java.lang.StringIndexOutOfBoundsException: String index out of range: -21

+0

http://examples.javacodegeeks.com/java-basics/exceptions/java-lang-stringindexoutofboundsexception-how-to-solve-stringindexoutofboundsexception/ –

+0

Поскольку эта ошибка возникает из-за привязки данных, у меня нет строки, где я могу начать поиск этой ошибки и появился после добавления привязки данных. – yennsarah

ответ

1

У меня ошибка Error:cannot generate view binders java.lang.StringIndexOutOfBoundsException: String index out of range: -21 почти каждый раз, когда я пытался использовать ObservableList с пользовательскими объектами. Но я узнал, что почти каждый раз я забыл > после моего типа. Дурак я. Итак, мое решение было проверять его:

<data> 

     <import type="android.databinding.ObservableArrayList"/> 

     <variable 
      name="dices" 
      type="ObservableArrayList&lt;Dice>" /> //don't forget the '>' after Dice 
    </data> 
2

У меня были разные проблемы с DataBinding, аналогичные вашим, например, что Android Studio не может найти сгенерированные классы Binding, такие как «MainActivityBinding». Перезагрузка Android Studio решила его для меня.

Что касается классов BR, у меня возникли проблемы с их отсутствием, но обычно это было из-за ошибки, которую я сделал в классе макета. Например, привязка к полю, которое не существует. Убедитесь, что все остальное правильно, а затем перезапустите Android Studio.

+0

Перезагрузка студия Android сделала для меня работу. Спасибо –

3

После обновления Android Studioдо версии 2.3 и Gradle 3,3 У меня была эта ошибка, и решение для меня было добавить это к моему сборки .gradle (приложение) файл

apt 'com.android.databinding:compiler:2.3.0' 
+0

Это сработало для меня, спасибо – crgarridos

+1

Я полагаю, что нужно уйти от apt к процессору аннотации? Вместо этого используйте это: 'annotationProcessor 'com.android.databinding: компилятор: 2.3.0'' – beerBear

Смежные вопросы