Невозможно запустить проект Intellij android с включенной привязкой данных - PullRequest
0 голосов
/ 06 февраля 2020

Я следил за android уроками кодовых меток , и они вводили databinding. В соответствии с кодом, все, что мне нужно было сделать, это включить databinding в файле build.gradle, как показано ниже:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.lesson4"
        minSdkVersion 18
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

Однако проект не может быть встроен в эмулятор, и мне представлено код ошибки: Unable to load class 'javax.xml.bind.JAXBException'.

  1. Я также пошел дальше, чтобы изменить XML файл activity_main, чтобы обернуть ConstraintLayout в тег Layout, но я думаю, ошибка где-то внутри части сборки gradle.

  2. Я пробовал различные методы, такие как apply plugin: 'kotlin-kapt', включая зависимости kotlin, но та же ошибка все еще сохраняется.

  3. Я также пытался очистить проект и восстановить его.

  4. Я также пытался создать новый проект, и только включил databinding ... Та же ошибка сохраняется.

Надеюсь, кто-нибудь может рассказать мне о том, как заставить привязку данных работать в intellij для android?

1 Ответ

0 голосов
/ 06 февраля 2020

После некоторых исследований я обнаружил, что привязка данных приведет к ошибкам при использовании Java 9 +.

Все, что вам нужно сделать, это установить Java в версию 8, и она должна работать.

Я не хочу использовать Java 8

Затем необходимо вручную добавить зависимости JAX-B

kapt "com.sun.xml.bind:jaxb-core:2.3.0.1"
kapt "javax.xml.bind:jaxb-api:2.3.1"
kapt "com.sun.xml.bind:jaxb-impl:2.3.2"
annotationProcessor "com.sun.xml.bind:jaxb-core:2.3.0.1" 
annotationProcessor "javax.xml.bind:jaxb-api:2.3.1"

и применить kotlin -kapt плагин с:

apply plugin: 'kotlin-kapt'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...