realm-java icon indicating copy to clipboard operation
realm-java copied to clipboard

kapt plugin throwing error with kotlinx.coroutines 1.7.x

Open ElegyD opened this issue 2 years ago • 5 comments

How frequently does the bug occur?

Always

Description

I have updated my app dependencies and some now depend on org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 and org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1. Before, they were version 1.6.4. When building the project now, Realm throws an error Field "xyz" of type "@org.jetbrains.annotations.Nullable byte[]" is not supported. Field xyz being a variable of a RealmObject implemented in Kotlin (var xyz: ByteArray? = null).

I tried updating both to the latest version (as of now 1.7.3) but the issue remains. When explicitly downgrading to version 1.6.4 it works again: implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4!!") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4!!")

The release notes of kotlinx-coroutines 1.7.0 list some breaking changes, but I haven't been able to find more details.

Stacktrace & log output

> Task :app:kaptDebugKotlin FAILED
error: Field "xyz" of type "@org.jetbrains.annotations.Nullable byte[]" is not supported.
public class Foo extends io.realm.RealmObject {
       ^
warning: Unclosed files for the types 'io.realm.foo_bar_FooRealmProxy'; these types will not undergo annotation processing

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 21s
40 actionable tasks: 40 executed

Can you reproduce the bug?

Always

Reproduction Steps

  • Create an Android Studio project with Kotlin.
  • Install the Realm Java SDK.
  • Include the org.jetbrains.kotlinx:kotlinx-coroutines-core and/or org.jetbrains.kotlinx:kotlinx-coroutines-android dependency with a version >= 1.7.0: implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
  • Create a Realm Object class with a variable of type ByteArray? and a default value of null: var foo: ByteArray? = null
  • Build the project.

Version

10.17.0

What Atlas App Services are you using?

Local Database only

Are you using encryption?

No

Platform OS and version(s)

Android 14, SDK 34

Build environment

Android Studio version: Giraffe 2022.3.1 Patch 2 Android Build Tools version: 33.0.1 Gradle version: 8.0 Kotlin & kapt version: 1.9.0

ElegyD avatar Oct 25 '23 09:10 ElegyD

I'm having the same issue!!

dejiapps avatar Oct 28 '23 12:10 dejiapps

I have the same error. I tried kotlinx-coroutines-core:1.7.x, 1.8.0

vitalyveldyasov avatar Apr 14 '24 11:04 vitalyveldyasov

Also have the same issue

mgoyanes avatar Apr 19 '24 19:04 mgoyanes

this solves the issue:

configurations.all {
        resolutionStrategy {
            force("org.jetbrains:annotations:13.0")
       }
}

caeduk avatar Apr 26 '24 11:04 caeduk

@ElegyD did you find a solution?

fmorau avatar Aug 30 '24 11:08 fmorau