Миграция в androidx.databinding на AndroidStudio 3.0 - PullRequest
0 голосов
/ 19 ноября 2018

Я хотел бы спросить, можно ли перейти на androidx.databinding в AndroidStudio 3.0.Я пока не хочу обновляться до AndroidStudio 3.2, и кажется, что я могу импортировать только android.databinding вместо версии androidx.

Я добавил это в свой файл приложения:

kapt "androidx.databinding:databinding-compiler:3.2.0-alpha16"

Зависимость проекта gradle:

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

Все остальные библиотеки androidx, которые я добавил в gradle, могут быть импортированы в коде, но не привязаны к данным.Кто-нибудь еще использует AndroidStudio 3.0, успешно использовал androidx.databinding?

Спасибо.

ОБНОВЛЕНИЕ:

В приложении build.gradle я обновил зависимость с -jre8 до-jdk8:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

Это зависимости build.gradle приложения:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "androidx.appcompat:appcompat:$rootProject.supportLibVersion"
    implementation "com.google.android.material:material:$rootProject.supportLibVersion"

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'

    implementation 'com.github.bumptech.glide:glide:4.8.0'
    kapt 'com.github.bumptech.glide:compiler:4.8.0'

    implementation 'com.google.android.gms:play-services-maps:16.0.0'
    implementation 'com.google.android.gms:play-services-auth:16.0.1'

    // architecture components
    implementation "androidx.lifecycle:lifecycle-extensions:$rootProject.archLifecycleVersion"
    implementation "androidx.lifecycle:lifecycle-runtime:$rootProject.archLifecycleVersion"
    implementation "androidx.room:room-runtime:$rootProject.roomVersion"
    implementation "androidx.paging:paging-runtime:$rootProject.pagingVersion"
    kapt "androidx.lifecycle:lifecycle-compiler:$rootProject.archLifecycleVersion"
    kapt "androidx.room:room-compiler:$rootProject.roomVersion"

    kapt "androidx.databinding:databinding-compiler:3.2.1"

    testImplementation 'junit:junit:4.12'
}

configurations {
    all {
        exclude group: 'com.android.support'
        exclude module: 'httpclient'
        exclude module: 'commons-logging'
    }
}

А это версии build.gradle проекта:

ext {
    archLifecycleVersion = '2.0.0'
    roomVersion = '2.1.0-alpha02'
    pagingVersion = '2.1.0-beta01'

    supportLibVersion = '1.0.0'
}

Iвыполнил это, чтобы узнать больше о проблеме в моем проекте:

. / gradlew: app: kaptDebugKotlin

, и я получил эту ошибку:

e: error: cannot access NonNull
  class file for android.support.annotation.NonNull not found
  Consult the following stack trace for details.
  com.sun.tools.javac.code.Symbol$CompletionFailure: class file for android.support.annotation.NonNull not found
e: [kapt] An exception occurred: java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open_utf8([BI)V
        at org.sqlite.core.NativeDB._open_utf8(Native Method)
        at org.sqlite.core.NativeDB._open(NativeDB.java:71)
        at org.sqlite.core.DB.open(DB.java:174)
        at org.sqlite.core.CoreConnection.open(CoreConnection.java:220)
        at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:76)
        at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:25)
        at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:24)
        at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:45)
        at org.sqlite.JDBC.createConnection(JDBC.java:114)
        at androidx.room.verifier.DatabaseVerifier$Companion.create(DatabaseVerifier.kt:81)

Так что кажетсячто базовая библиотека sqlite все еще использует android.support.annotation.NonNull.Есть идеи, как это решить?

Спасибо.

...