nextcloud / notes-android

✎ Android client for Nextcloud Notes app.
https://play.google.com/store/apps/details?id=it.niedermann.owncloud.notes
GNU General Public License v3.0
924 stars 134 forks source link

4.2.0 widget crash on Android 14 #2091

Closed weimdall closed 4 months ago

weimdall commented 5 months ago

Hello,

Since 4.2.0 update, the NextCloud Notes widget is no longer working on my phone. Each time the widget loads, I get the following trace:

App Version: 4.2.0
App Version Code: 40020090
App Flavor: play

Files App Version Code: 30280090 (PROD)

---

OS Version: 4.14.336-perf-gf34c9ab5042f(4e704b240a)
OS API Level: 34
Device: OnePlus7
Manufacturer: OnePlus
Model (and Product): GM1901 (OnePlus7)

---

java.lang.RuntimeException: Unable to start receiver it.niedermann.owncloud.notes.widget.notelist.NoteListWidget: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4499)
    at android.app.ActivityThread.-$$Nest$mhandleReceiver(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2281)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:205)
    at android.os.Looper.loop(Looper.java:294)
    at android.app.ActivityThread.main(ActivityThread.java:8248)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.os.Parcel.createExceptionOrNull(Parcel.java:3061)
    at android.os.Parcel.createException(Parcel.java:3041)
    at android.os.Parcel.readException(Parcel.java:3024)
    at android.os.Parcel.readException(Parcel.java:2966)
    at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:6597)
    at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:571)
    at android.app.PendingIntent.getActivity(PendingIntent.java:552)
    at android.app.PendingIntent.getActivity(PendingIntent.java:516)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.updateAppWidget(NoteListWidget.java:44)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.onReceive(NoteListWidget.java:75)
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4490)
    ... 9 more
MyrnaMoynel commented 5 months ago

Same issue, tried a reinstall of the app and a full cache wipe. Only the widget, app is fine otherwise

App Version: 4.2.0
App Version Code: 40020090
App Flavor: play

Files App Version Code: 30280090 (PROD)

---

OS Version: 5.10.189-android13-4-00012-g1217bb583cc5-ab11174560(11445699)
OS API Level: 34
Device: panther
Manufacturer: Google
Model (and Product): Pixel 7 (panther)

---

java.lang.RuntimeException: Unable to start receiver it.niedermann.owncloud.notes.widget.notelist.NoteListWidget: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4672)
    at android.app.ActivityThread.-$$Nest$mhandleReceiver(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2357)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loopOnce(Looper.java:232)
    at android.os.Looper.loop(Looper.java:317)
    at android.app.ActivityThread.main(ActivityThread.java:8501)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
Caused by: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.os.Parcel.createExceptionOrNull(Parcel.java:3186)
    at android.os.Parcel.createException(Parcel.java:3166)
    at android.os.Parcel.readException(Parcel.java:3149)
    at android.os.Parcel.readException(Parcel.java:3091)
    at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:6668)
    at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:571)
    at android.app.PendingIntent.getActivity(PendingIntent.java:552)
    at android.app.PendingIntent.getActivity(PendingIntent.java:516)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.updateAppWidget(NoteListWidget.java:44)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.onReceive(NoteListWidget.java:75)
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4663)
    ... 9 more
mark99i commented 5 months ago

Same issue, widget not working on A14

mirol99 commented 5 months ago

Same here, Pixel 6A

nspo commented 5 months ago

For others with the same issue which did not quite understand the implications of the previous comments: as a temporary workaround, it is enough to remove the widget from the home screen. Afterwards, the Notes app is usable again (though of course without the widget). While the widget was still there, I got a crash even when directly opening the app.

mirol99 commented 5 months ago

Thanks! mobil gesendet

Rainer Scheer 0171 9988028

28.03.2024 16:57:51 Nicolai Spohrer @.***>:

For others with the same issue which did not quite understand the implications of the previous comments: as a temporary workaround, it is enough to remove the widget from the home screen. Afterwards, the Notes app is usable again (though of course without the widget). While the widget was still there, I got a crash even when directly opening the app.

— Reply to this email directly, view it on GitHub[https://github.com/nextcloud/notes-android/issues/2091#issuecomment-2025562204], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AMUFQ3LVNRIYH3IXE37USD3Y2QVW5AVCNFSM6AAAAABFJHK3OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRVGU3DEMRQGQ]. You are receiving this because you commented. [Verfolgungsbild][https://github.com/notifications/beacon/AMUFQ3I2NFB43HPVCMEXTA3Y2QVW5A5CNFSM6AAAAABFJHK3OWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTYXOQFY.gif]

BloodyIron commented 5 months ago

Any chance we can have a Dev chime in?

msrn commented 5 months ago

Same here. Galaxy A52s 5g

App Version: 4.2.0
App Version Code: 40020090
App Flavor: fdroid

Files App Version Code: 30280090 (PROD)

---

OS Version: 5.4.233-qgki-27763529-abA528BXXS6FXB7(A528BXXS6FXB7)
OS API Level: 34
Device: a52sxq
Manufacturer: samsung
Model (and Product): SM-A528B (a52sxqeea)

---

java.lang.RuntimeException: Unable to start receiver it.niedermann.owncloud.notes.widget.notelist.NoteListWidget: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4905)
    at android.app.ActivityThread.-$$Nest$mhandleReceiver(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2498)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:230)
    at android.os.Looper.loop(Looper.java:319)
    at android.app.ActivityThread.main(ActivityThread.java:8893)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.os.Parcel.createExceptionOrNull(Parcel.java:3073)
    at android.os.Parcel.createException(Parcel.java:3053)
    at android.os.Parcel.readException(Parcel.java:3036)
    at android.os.Parcel.readException(Parcel.java:2978)
    at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:7021)
    at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:561)
    at android.app.PendingIntent.getActivity(PendingIntent.java:537)
    at android.app.PendingIntent.getActivity(PendingIntent.java:501)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.updateAppWidget(NoteListWidget.java:44)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.onReceive(NoteListWidget.java:75)
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4896)
    ... 9 more
Caused by: android.os.RemoteException: Remote stack trace:
    at com.android.server.am.ActivityManagerService.getIntentSenderWithFeatureAsApp(ActivityManagerService.java:6460)
    at com.android.server.am.ActivityManagerService.getIntentSenderWithFeature(ActivityManagerService.java:6403)
    at android.app.IActivityManager$Stub.onTransact$getIntentSenderWithFeature$(IActivityManager.java:11842)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3381)
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3195)
m0yP commented 5 months ago

Same here, Pixel 8, stock rooted Android 14.

App Version: 4.2.0
App Version Code: 40020090
App Flavor: fdroid

Files App Version Code: 30280190 (PROD)

---

OS Version: 5.15.131-android14-11-gd99d9fe08e0c-ab11209359(11445699)
OS API Level: 34
Device: shiba
Manufacturer: Google
Model (and Product): Pixel 8 (shiba)

---

java.lang.RuntimeException: Unable to start receiver it.niedermann.owncloud.notes.widget.notelist.NoteListWidget: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4672)
    at android.app.ActivityThread.-$$Nest$mhandleReceiver(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2357)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loopOnce(Looper.java:232)
    at android.os.Looper.loop(Looper.java:317)
    at android.app.ActivityThread.main(ActivityThread.java:8501)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
Caused by: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.os.Parcel.createExceptionOrNull(Parcel.java:3186)
    at android.os.Parcel.createException(Parcel.java:3166)
    at android.os.Parcel.readException(Parcel.java:3149)
    at android.os.Parcel.readException(Parcel.java:3091)
    at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:6668)
    at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:571)
    at android.app.PendingIntent.getActivity(PendingIntent.java:552)
    at android.app.PendingIntent.getActivity(PendingIntent.java:516)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.updateAppWidget(NoteListWidget.java:44)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.onReceive(NoteListWidget.java:75)
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4663)
    ... 9 more
Caused by: android.os.RemoteException: Remote stack trace:
    at com.android.server.am.ActivityManagerService.getIntentSenderWithFeatureAsApp(ActivityManagerService.java:5399)
    at com.android.server.am.ActivityManagerService.getIntentSenderWithFeature(ActivityManagerService.java:5342)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3296)
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2798)
    at android.os.Binder.execTransactInternal(Binder.java:1496)
knorx commented 5 months ago

Same here, Widget broken since Update to 4.2.0. App itself works. Deinstall, cache/data wipe had no effect.

App Version: 4.2.0
App Version Code: 40020090
App Flavor: fdroid

Files App Version Code: 30280090 (PROD)

---

OS Version: 4.14.190-perf-27790765-abA525FXXU6EXB3(A525FXXU6EXB3)
OS API Level: 34
Device: a52q
Manufacturer: samsung
Model (and Product): SM-A525F (a52qnseea)

---

java.lang.RuntimeException: Unable to start receiver it.niedermann.owncloud.notes.widget.notelist.NoteListWidget: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4905)
    at android.app.ActivityThread.-$$Nest$mhandleReceiver(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2498)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:230)
    at android.os.Looper.loop(Looper.java:319)
    at android.app.ActivityThread.main(ActivityThread.java:8893)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.lang.IllegalArgumentException: it.niedermann.owncloud.notes: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
    at android.os.Parcel.createExceptionOrNull(Parcel.java:3073)
    at android.os.Parcel.createException(Parcel.java:3053)
    at android.os.Parcel.readException(Parcel.java:3036)
    at android.os.Parcel.readException(Parcel.java:2978)
    at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:7021)
    at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:561)
    at android.app.PendingIntent.getActivity(PendingIntent.java:537)
    at android.app.PendingIntent.getActivity(PendingIntent.java:501)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.updateAppWidget(NoteListWidget.java:44)
    at it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.onReceive(NoteListWidget.java:75)
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:4896)
    ... 9 more
blitzdesigner commented 5 months ago

Same here, app works when widget is not present on any home screen.

App Version: 4.2.0
App Version Code: 40020090
App Flavor: play

Files App Version Code: 30280090 (PROD)

---

OS Version: 4.19.278-g7b0944645172-ab10812814(11260668)
OS API Level: 34
Device: redfin
Manufacturer: Google
Model (and Product): Pixel 5 (redfin)

---

java.lang.RuntimeException: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
    at io.reactivex.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46)
    at io.reactivex.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:93)
    at io.reactivex.Maybe.blockingGet(Maybe.java:2321)
    at io.reactivex.Observable.blockingSingle(Observable.java:5381)
    at it.niedermann.owncloud.notes.persistence.NotesServerSyncTask.pullRemoteChanges(NotesServerSyncTask.java:219)
    at it.niedermann.owncloud.notes.persistence.NotesServerSyncTask.run(NotesServerSyncTask.java:96)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:487)
    at java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
    at java.lang.Thread.run(Thread.java:1012)
Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:584)
    at com.nextcloud.android.sso.aidl.IInputStreamService$Stub$Proxy.performNextcloudRequestV2(IInputStreamService.java:200)
    at com.nextcloud.android.sso.api.AidlNetworkRequest.performAidlNetworkRequestV2(AidlNetworkRequest.java:234)
    at com.nextcloud.android.sso.api.AidlNetworkRequest.performNetworkRequestV2(AidlNetworkRequest.java:181)
    at com.nextcloud.android.sso.api.NextcloudAPI.performNetworkRequestV2(NextcloudAPI.java:165)
    at com.nextcloud.android.sso.api.NextcloudAPI.lambda$performRequestObservableV2$0(NextcloudAPI.java:105)
    at com.nextcloud.android.sso.api.NextcloudAPI.$r8$lambda$2CK7Y9lXWWrtN8jgT_iNTMeTrHU(Unknown Source:0)
    at com.nextcloud.android.sso.api.NextcloudAPI$$ExternalSyntheticLambda0.subscribe(Unknown Source:6)
    at io.reactivex.internal.operators.observable.ObservableFromPublisher.subscribeActual(ObservableFromPublisher.java:31)
    at io.reactivex.Observable.subscribe(Observable.java:12284)
    at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
    at io.reactivex.Maybe.subscribe(Maybe.java:4290)
    at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
    ... 8 more
BloodyIron commented 5 months ago

@AndyScherzinger perhaps yourself or another Dev can chime into the multiple issues about this being suddenly broken for seemingly no reason? Nobody is responding thus-far into these multiple issues reported in the last few days for the same problem.

AndyScherzinger commented 5 months ago

Hi @BloodyIron

I'll check back with the other devs. Looking at the reports the issue is "simple": 4.2.0 targets Android 14 (technically speaking) hence it needs to comply to the API definition of Android 14, which according to the stack traces you all posted - it doesn't. It (still) uses a construct which is forbidden starting with Android 14.

Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.

The last report from https://github.com/nextcloud/notes-android/issues/2091#issuecomment-2030067349 however is not related and I would expect that one to also happen on pre-4.2.0.

So looping in @tobiasKaminsky @alperozturk96

And additionally for a potential "quick hint" @stefan-niedermann

stefan-niedermann commented 5 months ago

quick hint: check the intents, especially the ones in the widgets. there is some kind of compat method each intent is wrapped with. I remember I extracted flags related to implicity (as the stacktrace says) and wrapped them in this util method. Probably the roor cause is there...

stefan-niedermann commented 5 months ago

This one maybe: https://github.com/nextcloud/notes-android/blob/main/app/src/main/java/it/niedermann/owncloud/notes/shared/util/WidgetUtil.java#L32

BloodyIron commented 5 months ago

Hi @BloodyIron

I'll check back with the other devs. Looking at the reports the issue is "simple": 4.2.0 targets Android 14 (technically speaking) hence it needs to comply to the API definition of Android 14, which according to the stack traces you all posted - it doesn't. It (still) uses a construct which is forbidden starting with Android 14.

Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.

The last report from #2091 (comment) however is not related and I would expect that one to also happen on pre-4.2.0.

So looping in @tobiasKaminsky @alperozturk96

And additionally for a potential "quick hint" @stefan-niedermann

Thanks for your help!!! \o/

tobiasKaminsky commented 5 months ago

Working on it now.

tobiasKaminsky commented 5 months ago

Fix is here: https://github.com/nextcloud/notes-android/pull/2115

tobiasKaminsky commented 5 months ago

Hm. Now no crash, but clicking on a widget leads to:

Cannot send pending intent due to unknown exception: 
                                                                                                    android.content.ActivityNotFoundException: No Activity found to handle null
                                                                                                        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2239)
                                                                                                        at android.app.Activity.startIntentSenderForResultInner(Activity.java:5978)
                                                                                                        at android.app.Activity.startIntentSenderForResult(Activity.java:5941)
                                                                                                        at com.android.launcher3.Launcher.startIntentSenderForResult(Unknown Source:5)
                                                                                                        at com.android.launcher3.uioverrides.QuickstepLauncher.startIntentSenderForResult(Unknown Source:30)
                                                                                                        at android.app.Activity.startIntentSender(Activity.java:6139)
                                                                                                        at android.widget.RemoteViews.startPendingIntent(RemoteViews.java:6776)
                                                                                                        at com.android.launcher3.uioverrides.QuickstepInteractionHandler.onInteraction(Unknown Source:163)
                                                                                                        at android.appwidget.AppWidgetHostView.lambda$getHandler$1(AppWidgetHostView.java:896)
                                                                                                        at android.appwidget.AppWidgetHostView.$r8$lambda$27ZsoZ6qNW9ni4kzs1fvJKcTffM(Unknown Source:0)
                                                                                                        at android.appwidget.AppWidgetHostView$$ExternalSyntheticLambda0.onInteraction(Unknown Source:4)
                                                                                                        at android.widget.RemoteViews$RemoteResponse.handleViewInteraction(RemoteViews.java:6676)
                                                                                                        at android.widget.RemoteViews$RemoteResponse.-$$Nest$mhandleViewInteraction(Unknown Source:0)
                                                                                                        at android.widget.RemoteViews$SetPendingIntentTemplate.lambda$apply$0(RemoteViews.java:856)
                                                                                                        at android.widget.RemoteViews$SetPendingIntentTemplate.$r8$lambda$_fZDtXee99gPNbrHJWWvsioH0SQ(Unknown Source:0)
                                                                                                        at android.widget.RemoteViews$SetPendingIntentTemplate$$ExternalSyntheticLambda0.onItemClick(Unknown Source:8)
                                                                                                        at android.widget.AdapterView.performItemClick(AdapterView.java:330)
                                                                                                        at android.widget.AbsListView.performItemClick(AbsListView.java:1265)
                                                                                                        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3278)
                                                                                                        at android.widget.AbsListView$3.run(AbsListView.java:4244)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:205)
                                                                                                        at android.os.Looper.loop(Looper.java:294)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8177)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
tobiasKaminsky commented 5 months ago

Seems to be a 14+ problem, as this works on 10.

tobiasKaminsky commented 5 months ago

Happens also on Android Files.

tobiasKaminsky commented 5 months ago

What I debugged over the last two hours:

BloodyIron commented 5 months ago

Fix is here: #2115

Now if the fix is verified, we need a release ;)

AndyScherzinger commented 5 months ago

Now if the fix is verified, we need a release ;)

@BloodyIron see https://github.com/nextcloud/notes-android/issues/2091#issuecomment-2039176557 reads to me as step one is fixed now it fails at step 2

strugee commented 5 months ago

Pinning due to the high number of duplicates reported.

YannBirba commented 4 months ago

I got an app update a few days ago, looks like the app doesn't crash anymore but the widget is still unusable (does not respond to clicks). The notes list is well displayed into the widget, but can't click on them...

AndyScherzinger commented 4 months ago

@YannBirba yes, that is correct and still a bit unfortunate. @tobiasKaminsky has been able to prevent the crashes but reacting to the clicks still needs further investigation but we decided it is better to release it already to remove the crashing as a first step.

YannBirba commented 4 months ago

@YannBirba yes, that is correct and still a bit unfortunate. @tobiasKaminsky has been able to prevent the crashes but reacting to the clicks still needs further investigation but we decided it is better to release it already to remove the crashing as a first step.

Yeah ofc, thx for that.

BloodyIron commented 4 months ago

Really looking forward to this being fixed, the widget is very useful for my daily workflow! :) Thanks for those working on fixing it!

BloodyIron commented 3 months ago

@AndyScherzinger since the 4.3.0 milestones have no open issues attached, can we please have a new release? This fix was a month ago and I'm still waiting for it to land on my phone so I can use the lists widget again.

AndyScherzinger commented 2 months ago

@BloodyIron this needs to be done by @tobiasKaminsky I do not have any access to publish a new release. I know though that RCs are out, so if you go to the Play store and register for the beta program on the app you would get the release with the fixes already.

BloodyIron commented 2 months ago

@tobiasKaminsky any thoughts on new releases, please?