Intereting Posts
Передача массива ByteBuffer из Java / Kotlin в C ++ / V8 приводит к неправильным данным Имеет ли Котлин функцию идентификации? Vert.x Kotlin Тип Несоответствие требуется Обработчик <AsyncResult <Unit >> found (Обработчик <AsyncResult <Unit >>) -> Unit Отключить диалог на задней клавише Запись функции использования Kotlin, которая обеспечивает самооценку в инициализаторе Каков самый простой способ получить потокобезопасное свойство в Котлин? Android Build Crashes после подписанной сборки Генериры Котлина Массив <T> приводит к «Невозможно использовать T как параметр типа reified. Вместо этого используйте класс, но List <T> не делает Android numberPicker, передающий виджет Android в качестве значения @DataJpaTest и метод @Async CRUDRepository не работают вместе Невозможно создать привязки вида java.lang.NullPointerException Как использовать библиотеку kmongo для оператора slice Ошибка подключения к базе данных Kotlin Почему Kotlin позволяет иметь два класса с одинаковым именем и пакетом в разных папках (например, main и androidTest)? Как установить обработчик кликов в динамическом списке (в tornadofx)

Код привязки для Android Studio 3.0, не созданный студией Android

У меня проблема с Android Studio 3.0 и комбинацией kotlin и привязки данных. Я не уверен, почему, но параметр «Настройки» -> «Редактор» -> «Связывание данных» -> Код ссылки, созданный андроид-студией, не работает так, как должно быть.

Я пробовал его в разных версиях AS 3.0 (Canary 3, Canary 5, Canary 6) с разными kotlin (1.1.2-3, 1.1.3, 1.1.3-2) и компилятором databinding ver. Конечно, я даже создал чистый проект, и возникает такая же проблема. Я уверен, что проблема кроется в комбинации котлин и databinding, потому что в том же проекте привязка данных в java-классе работает просто отлично, файлы, созданные с помощью привязки данных, обновляются с каждым изменением в .xml-файле.

Я не собираюсь вставлять свой каждый файл содержимого градиента здесь, потому что я пробовал много комбинированных версий котлина и привязки данных. Ниже приведена одна из них.

apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.dawidj.myapplication" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } dataBinding { enabled = true } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.android.support:appcompat-v7:25.4.0' testImplementation 'junit:junit:4.12' // Databinding kapt "com.android.databinding:compiler:$android_plugin_version" } repositories { mavenCentral() } buildscript { ext.android_plugin_version = '2.4.0-alpha7' ext.kotlin_version = '1.1.3' repositories { maven { url 'https://maven.google.com' } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-alpha3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { maven { url 'https://maven.google.com' } jcenter() mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir } 

Я заметил, что пока я в java-файле после щелчка (ctrl + click) в файле, созданном Data binding ex.:activity_main.xml -> ActivityMainBinding.java, мой экран перемещается непосредственно в файл activity_main.xml. После того же действия в экране класса Kotlin перемещается в файл ActivityMainBinding.java.

Это очень неприятная проблема, потому что с каждым изменением в .xml-файле я вынужден перестроить проект, чтобы использовать привязку данных.

Любая помощь или информация будут оценены

EDIT: Invalidate cache / restart помогает только для первой сборки проекта. Если я создаю новый макет .xml, он работает нормально до сборки проекта.