Skip to content

Build fails at :app:kaptGenericDebugKotlin with @JsonField getter/setter errors after fresh clone #5553

@KaanBN

Description

@KaanBN

Steps to reproduce

Description

After cloning the repository and trying to build the app for the first time, the build consistently fails at the :app:kaptGenericDebugKotlin task with multiple errors like:

error: @JsonField annotation can only be used on private fields if both getter and setter are present.

This happens on a completely fresh clone with no local code changes.

I saw issue #4790 ("KAPT error when building the App"), but that one is about javax.annotation.Generated not being found, while my failure is about @JsonField getter/setter requirements, so it seems to be a different problem.


Steps to reproduce

  1. Clone the repo
git clone https://github.com/nextcloud/talk-android.git
cd talk-android
  1. Open the project in Android Studio (no code changes).

  2. Run a build using the Gradle wrapper, for example:

./gradlew clean assembleGenericDebug

or

./gradlew clean assembleGeneric

4.The build fails at :app:kaptGenericDebugKotlin.

Expected behaviour

A fresh clone of the repository should build successfully using the provided Gradle wrapper and the setup described in SETUP.md, without having to modify the source code or model classes.

Actual behaviour

Gradle fails with many errors like these (example):

> Task :app:kaptGenericDebugKotlin

.../app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/polls/repositories/model/PollResponse.java:16:
error: @JsonField annotation can only be used on private fields if both getter and setter are present.
    private java.lang.String id;
                             ^

.../app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/participants/Participant.java:32:
error: @JsonField annotation can only be used on private fields if both getter and setter are present.
    private java.lang.Boolean internal;
                              ^
... (similar errors for multiple model classes) ...

> Task :app:kaptGenericDebugKotlin FAILED

Execution failed for task ':app:kaptGenericDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction

The problems report also mentions:

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
For more on this, please refer to https://docs.gradle.org/9.2.0/userguide/command_line_interface.html#sec:command_line_warnings

Device brand and model

android studio emulator

Android version

35

Nextcloud Talk app version

none

Nextcloud server version

No response

Talk version

No response

Custom Signaling server configured

None

Custom TURN server configured

None

Custom STUN server configured

None

Android logs

Configuration on demand is an incubating feature.

Task :app:stripGenericDebugDebugSymbols
Unable to strip the following libraries, packaging them as they are: libandroidx.graphics.path.so, libc++_shared.so, libconscrypt_jni.so, libdatastore_shared_counter.so, libimage_processing_util_jni.so, libjingle_peerconnection_so.so, libmediapipe_tasks_vision_jni.so, libopencv_java4.so, libpl_droidsonroids_gif.so, libsqlcipher.so, libsurface_util_jni.so. Run with --info option to learn more.

Task :app:kaptGenericDebugKotlin
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/polls/repositories/model/PollResponse.java:16: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/participants/Participant.java:32: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.Boolean internal;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/participants/Participant.java:56: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private long inCall;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/participants/Participant.java:68: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String invitedActorId;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/participants/TalkBan.java:14: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/participants/TalkBan.java:38: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String internalNote;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/autocomplete/AutocompleteUser.java:14: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/chat/ChatMessageJson.java:15: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private long id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/userAbsence/UserAbsenceData.java:14: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/sharees/Sharee.java:14: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/status/Status.java:25: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String icon;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/status/predefined/PredefinedStatus.java:15: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/status/predefined/PredefinedStatus.java:18: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String icon;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchEntry.java:26: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String icon;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/push/DecryptedPushMessage.java:24: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/push/NotificationUser.java:17: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/opengraph/OpenGraphObject.java:14: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/opengraph/RichObject.java:14: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/profile/CoreProfileAction.java:14: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/profile/CoreProfileAction.java:17: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String icon;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/threads/Thread.java:13: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private int id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/mention/Mention.java:18: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/generic/Status.java:13: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private boolean installed;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/hovercard/HoverCardAction.java:17: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String icon;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/signaling/NCMessagePayload.java:23: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private com.nextcloud.talk.models.json.signaling.NCIceCandidate iceCandidate;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/invitation/Invitation.java:13: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private int id;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/invitation/Invitation.java:38: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String inviterCloudId;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/invitation/Invitation.java:41: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String inviterDisplayName;
^
/Users/XXXX/StudioProjects/talk-android/app/build/tmp/kapt3/stubs/genericDebug/com/nextcloud/talk/models/json/notifications/Notification.java:16: error: @JsonField annotation can only be used on private fields if both getter and setter are present.
private java.lang.String icon;
^
warning: The following options were not recognized by any processor: '[room.schemaLocation, kapt.kotlin.generated]'

Task :app:kaptGenericDebugKotlin FAILED

[Incubating] Problems report is available at: file:///Users/XXXX/StudioProjects/talk-android/build/reports/problems/problems-report.html

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:kaptGenericDebugKotlin'.

A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction

  • 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 generate a Build Scan (powered by Develocity).
Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/9.2.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 4s
36 actionable tasks: 16 executed, 19 from cache, 1 up-to-date

Server log

Additional information

  • This is the very first build after cloning the repository; there are no local changes.

  • I also tried:

    • Running ./gradlew clean before building.
    • Closing Android Studio / restarting the IDE.
    • Disabling the new Kotlin K2 compiler in Android Studio.
  • The error always points to generated Java stubs under app/build/tmp/kapt3/stubs/... where fields annotated with @JsonField are private and reported as missing a getter and/or setter.

If you need more logs (full stacktrace, --info/--debug output, or ./gradlew -version), I can provide them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions