objectbox/objectbox-java

Support initialization magic (transformer) for plain Kotlin projects

Open

#440 ouverte le 28 avr. 2018

Voir sur GitHub
 (3 commentaires) (0 réactions) (1 assigné)Java (348 forks)batch import
enhancementhelp wanted

Métriques du dépôt

Stars
 (4 275 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

Issue Basics

  • ObjectBox version (are using the latest version?): 1.5.0
  • Reproducibility: always

Reproducing the bug

Description

I want to extract a common module (all objectBox usage are here) from and Android app so that it can be used for TornatoFX app (Kotlin) as well. When I set up the module as an Android library module, the Android app run fine but when I try to remove all the Android related stuff, gradle build produces logs like this:

Warning: cursor transformer did not find entity class org.de_studio.diary.appcore.data.objectBox.TodoOB

When I run the app, I can't put entity with ToMany relation into the box. I can't attach to the box as well:

java.lang.IllegalArgumentException: io.reactivex.exceptions.OnErrorNotImplementedException: lateinit property places has not been initialized

Seems like only entities with relation include in the logs.

I read the document, tried many way but can't get rid of the warning. Below is my module's settings.gradle file. Did I miss anything?

Code

apply plugin: 'java-library'
apply plugin: 'application'
apply plugin: 'kotlin'
apply plugin: 'kotlin-kapt'
apply plugin: 'net.ltgt.apt-idea'
apply plugin: 'io.objectbox'

kapt {
    arguments {
        arg("objectbox.debug", true)
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    api "io.reactivex.rxjava2:rxjava:2.1.1"
    api "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    api 'com.artemzin.rxjava:proguard-rules:1.2.10.0'
    api 'com.jakewharton.timber:timber:4.5.1'
    api 'com.jakewharton.rxrelay2:rxrelay:2.0.0'
    api 'com.gojuno.koptional:koptional:1.2.0'
    api 'com.gojuno.koptional:koptional-rxjava2-extensions:1.2.0'
    api 'net.danlew:android.joda:2.9.9.1'
    api 'com.google.code.gson:gson:2.8.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

    api "io.objectbox:objectbox-kotlin:$objectboxVersion"
    kapt "io.objectbox:objectbox-processor:$objectboxVersion"

    implementation "io.objectbox:objectbox-java:$objectboxVersion"
}

tasks.withType(JavaCompile) {
    options.compilerArgs += [ "-Aobjectbox.debug=true" ]
}

sourceSets {
    main {
        java {
            srcDir 'src/main/java'
            srcDir 'build/generated/source/kapt/main'
        }
    }
}

sourceCompatibility = "1.8"
targetCompatibility = "1.8"

Please let me know if you need more information. I will make a sample project if needed. Thanks!

Guide contributeur