-
-
Notifications
You must be signed in to change notification settings - Fork 287
Description
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
- Clone the repo
git clone https://github.com/nextcloud/talk-android.git
cd talk-android-
Open the project in Android Studio (no code changes).
-
Run a build using the Gradle wrapper, for example:
./gradlew clean assembleGenericDebugor
./gradlew clean assembleGeneric4.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 cleanbefore building. - Closing Android Studio / restarting the IDE.
- Disabling the new Kotlin K2 compiler in Android Studio.
- Running
-
The error always points to generated Java stubs under
app/build/tmp/kapt3/stubs/...where fields annotated with@JsonFieldare 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.