PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 27 → WM27+ Target 31 : FLAG_IMMUTABLE ou FLAG_MUTABLE
WM27+ Target 31 : FLAG_IMMUTABLE ou FLAG_MUTABLE
Débuté par Pascal BOULESTEIX, 17 sep. 2022 05:14 - 24 réponses
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 17 septembre 2022 - 05:14
Salut à tous
Une application WM27 que je viens de mettre en prod en target31 (avec le dernier patch nécessaire) se plante avec le message suivant :

===== Erreur =====
Date et heure=17/09/2022 05:08:32
Message=fr.saxrub.visiolittoral: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
Pile Java=android.app.PendingIntent.checkFlags(PendingIntent.java:382)
android.app.PendingIntent.getActivityAsUser(PendingIntent.java:465)
android.app.PendingIntent.getActivity(PendingIntent.java:451)
android.app.PendingIntent.getActivity(PendingIntent.java:415)
com.google.firebase.messaging.d.l(Unknown Source:516)
com.google.firebase.messaging.FirebaseMessagingService.e(Unknown Source:321)
com.google.firebase.iid.y.run(Unknown Source:24)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
com.google.android.gms.common.util.concurrent.d.run(Unknown Source:7)
java.lang.Thread.run(Thread.java:920)
Thread=id=78
name=Firebase-FirebaseNotificationService
priority=5
groupName=main

===== Copie d'écran =====
Chemin=file:///storage/emulated/0/Android/data/fr.saxrub.visiolittoral/cache/err1663384112325.png

===== Application =====
Nom de l'application=Visiolittoral
Version de l'application=8.1.24.0
Nom du package=fr.saxrub.visiolittoral
Date et heure de lancement=17/09/2022 04:41:42
Version du framework Android=27.0.271.0

===== Appareil =====
Modèle=SM-G975F
Constructeur=samsung
Marque=samsung

===== Système =====
Numéro de version d'Android=12 (unknown)
Api Level Android=31
Mémoire de stockage interne totale=109,95 Go
Mémoire de stockage interne disponible=61,46 Go
Densité de l'écran=420
Résolution de l'écran=1080x2280


Une idée ?

J'ouvre de ce pas un incident chez PCSoft

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 17 septembre 2022 - 15:10
Bonjour. Vous avez téléchargé le patch à nouveau comme je l'ai indiqué à https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/46279-api-31-necessaire-pour-google-play-store-46443/read.awp.
C'est exactement l'erreur que je recevais lorsque j'essayais d'utiliser les notifications.

Rubén
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 17 septembre 2022 - 22:14
Salut Rubén
Oui j'avais réappliqué le patch avant mon déploiement !

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 19 septembre 2022 - 08:09
Bonjour à tous
Suite à une ouverture d'incident sur le sujet, le support m'a envoyé un lien pour télécharger un nouveau pack.
Donc, si vous avez le même problème, ouvrez un incident dans l'attente que ce nouveau pack soit disponible dans la liste des packs WM27

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 20 septembre 2022 - 12:43
Bonjour, je viens de rencontrer le même problème dans mon application en essayant d'afficher une notification avec l'application en arrière-plan lorsqu'elle est appelée par une tâche planifiée. J'ai demandé le correctif à PCSoft.....

Rubén
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 20 septembre 2022 - 15:18
Bonjour,,Pourriez-vous m'indiquer le numéro du patch qui vous a été envoyé ? Ils m'ont renvoyé celui que j'avais déjà installé et il produit toujours l'erreur.

Rubén
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 20 septembre 2022 - 19:32
C'est qu'en même incroyable que les mêmes symptômes ne dérivent pas les mêmes patchs ?
Je colles le lien au risque que la réponse soit censurée.
Bonne chance
https://stg.webdev.info/Telechargement_Support_WEB/FR/telec_ST.awp…

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 20 septembre 2022 - 20:21
Merci beaucoup. Je vais essayer. Je pense que vous devriez retirer le lien car votre code de licence apparaît dans le lien.

Rubén
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 20 septembre 2022 - 21:19
Rebonjour. Malheureusement, le problème n'est pas corrigé par votre patch.


09-20 21:10:11.032 11531 11531 No info available E JobServiceEngine Error while executing job: 453607853
09-20 21:10:11.033 11531 11531 No info available D AndroidRuntime Shutting down VM
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime FATAL EXCEPTION: main
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime Process: com.clarionero.boletinesoficiales, PID: 11531
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime java.lang.RuntimeException: java.lang.IllegalArgumentException: com.clarionero.boletinesoficiales: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.app.job.JobServiceEngine$JobHandler.handleMessage(JobServiceEngine.java:109)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.os.Handler.dispatchMessage(Handler.java:106)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.os.Looper.loopOnce(Looper.java:201)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.os.Looper.loop(Looper.java:288)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.app.ActivityThread.main(ActivityThread.java:7839)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at java.lang.reflect.Method.invoke(Native Method)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime Caused by: java.lang.IllegalArgumentException: com.clarionero.boletinesoficiales: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at fr.pcsoft.wdjava.core.utils.WDBackgroudTaskScheduler$BackgroundTaskService.onStartJob(Unknown Source:47)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.app.job.JobService$1.onStartJob(JobService.java:62)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime at android.app.job.JobServiceEngine$JobHandler.handleMessage(JobServiceEngine.java:105)
09-20 21:10:11.037 11531 11531 No info available E AndroidRuntime ... 7 more


L'application se ferme avec l'erreur lorsqu'on essaie d'exécuter une tâche planifiée en arrière-plan avec TâcheEnArrièrePlanAjoute.

Rubén
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 21 septembre 2022 - 08:43
Comment retirer le lien ?

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 21 septembre 2022 - 11:59
Bonjour, Normalement, si un court laps de temps s'est écoulé, vous obtenez un bouton d'édition. Je vois que les messages d'hier ne l'ont plus. Vous devriez peut-être contacter le support du forum et expliquer le problème. Il y a quelque temps, j'ai également posté un lien et ils m'ont dit eux-mêmes que cette information figurait dans le lien et ont retiré le lien. C'est sûrement parce qu'ils ne vérifient plus les messages.

Rubén
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 21 septembre 2022 - 13:30
Pour mon cas, le bouton "Editer" n'a jamais fonctionné. J'ai même ouvert un incident sur le sujet il y a 3 ou 4 ans.
Le moteur du forum est archaïque :
- pas de notification/email quand un sujet auquel on collabore est modifié,
- impossible d'écrire en privé aux membres,
...

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 21 septembre 2022 - 14:35
Marche arrière de la par du support. Le pack pack_fr_675117.zip est inclus dans le pack pack_fr_674794.zip dont Rubén avait identifié la modification.
Le support recommande donc de retélécharger le pack pack_fr_674794.zip est de l'installer.
Bref, pour mon cas, retour à la case départ !
A ce propos, le support vient de me demander de créer un mini-projet reproduisant le bug de la réception des notifications suivi du plantage.
J'ai refusé car je n'ai pas le temps.
Si qqu veux s'y coller, je suis preneur.

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Posté le 21 septembre 2022 - 14:49
Pascal BOULESTEIX a écrit :
Pour mon cas, le bouton "Editer" n'a jamais fonctionné. J'ai même ouvert un incident sur le sujet il y a 3 ou 4 ans.
Le moteur du forum est archaïque :
- pas de notification/email quand un sujet auquel on collabore est modifié,
- impossible d'écrire en privé aux membres,
...

--
Pascal Boulesteix
Applications Visiolittoral et WNat


J'ai signalé déjà depuis des années la piètre qualité du forum , ce devrait être une vitrine de ce qu'on peut faire avec Webdev, mais au final ça ne dessert vraiment pas l'outil!
En voyant tous les soucis avec l'API 31 au final nous sommes plus des béta testeurs que des clients!
Faire des mini-projets nous fait perdre du temps et en plus l'envoi est très limité au niveau de l'outil(obligatoire) de requete au ST
Sans compter que celui ci ne prévoies même pas Android 12 dans les options lorsqu'on doit préciser la version concernée.
Ca s’arrêter à Android 11 ceci explique pourquoi on a autant de soucis avec l'API 31!
et pour l'API 32 qui arrive très bientôt on aura es mêmes soucis ou bien encore pire ?
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 21 septembre 2022 - 15:35
Bonjour, je viens d'envoyer à PCSoft un exemple de projet avec l'erreur suivante.

Rubén
Membre enregistré
7 messages
Posté le 21 septembre 2022 - 17:58
Rubén,

Le support a déjà un exemple de projet :)
Et quel exemple !!! Puisqu'il s'agit tout simplement DE LEUR webinaire "Notification push, comment le faire ?" datant du 20/07/2017
CQFD

Fabrice
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 21 septembre 2022 - 19:40
Bonjour, mon exemple est encore plus basique et échoue toujours. Il m'a suffi de définir une fonction à appeler après avoir utilisé BackgroundAdd avec lui et de programmer l'heure. Si cela ne fonctionne pas, il est impossible que tout ce qui doit "activer" l'application fonctionne.

Rubén
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 21 septembre 2022 - 20:12
Fabrice, tu peux poster ton exemple ?
Dans mon appli, les autos notifications du style
<Compile SI TypeConfiguration=Android>
maNotification..Titre = "Erreur Géoréférencement inverse"
maNotification.Vibration = Vrai
maNotification.ActiveApplication = Faux
<FIN>

maNotification..Message="Des erreurs de géoférérencement ont été détectées. Prévenir +33689301944"
NotifAjoute(maNotification)


sont bien notifiées dans la barre d'état, mais il est vrai, que l'application est déjà lancée.
Par contre, le clic sur la notification n'active toujours pas la procédure de lecture des notifications de l'application.

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
7 messages
Posté le 22 septembre 2022 - 08:23
Pascal,

Voici le lien du webinaire :
https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/207765-pcsoft-webinaire-jeudi-20-juillet-11h-notifications-push/read.awp

Ma fonction ReceptionNotifPush() appelée par NotifPushProcédure() est quasi similaire à la tienne, si ce n'est que j'ai rajouté une condition afin de détecter si l'application est "en arrière plan" :
Procedure RéceptionNotifPush(MaNotificationPush est une Notification)
// Callback appelée lors du clic sur une notification PUSH reçue
<Compile SI TypeConfiguration=Android>
SI EnModeArrièrePlan() ALORS
n est une Notification
n..Titre=MaNotificationPush..Contenu
n..Message=MaNotificationPush..Message
n..ActiveApplication=Vrai
n..ActionClic=""
NotifAjoute(n)
SINON
OuvreFenêtreMobile(FEN_NotifPushMsg,MaNotificationPush)
FIN
<FIN>
<Compile SI TypeConfiguration=iOS>
OuvreFenêtreMobile(FEN_NotifPushMsg,MaNotificationPush)
<FIN>


Cà fonctionnait parfaitement depuis la première publication de mon appli sur le Play Store en 2018.
Que l'application soit démarrée ou non sur le mobile (c'est le but des notifications !!!)

Mais hélas, depuis que j'utilise WM27 + API level 31 + Android 12 :
1) Si l'application est arrêtée : aucune notification reçue
Rien ne se passe mis à part un léger clignotement de la 4G qui indique que quelque-chose est bien réceptionné sur le mobile
2) Si l'application est démarrée : la notification s'affiche, ce qui signifie que la procédure ReceptionNotifPush() s'exécute :-)
Mais lorsque l'on clique sur la notification, l'application plante

Fabrice
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 22 septembre 2022 - 19:18
Bonjour, réponse de PCSoft concernant mon application d'exemple avec l'erreur.

"Hi Ruben,

We have tested your application, with WINDEV MOBILE 270104f, on ANDROID 12 and she works fine.
We haven't any error messages.

The Free Technical Support is entirely at your service."

Avez-vous testé vos problèmes avec cette version ?

Rubén
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 22 septembre 2022 - 19:28
Pour ma part non ! 4go de téléchargement requièrent que j'aille chez mon fils qui a la fibre car avec mon 8mo de débit...
Je teste dès dimanche.

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 22 septembre 2022 - 21:07
Salutations. J'ai mis à jour le dossier Android du framework en mettant le contenu de la 27014f qui est sur la page web et j'ai retesté l'application de test. Les erreurs apparaissent toujours dans les logs. Et il affiche une fenêtre d'erreur indiquant que l'application a cessé de fonctionner.

Rubén
Membre enregistré
662 messages
Popularité : +16 (20 votes)
Posté le 23 septembre 2022 - 07:39
Tu n'es pas en capacité de faire une installation complète ?
Je présume que tu as informé le support ?

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 23 septembre 2022 - 11:03
Bonjour, je n'ai remplacé que le framework Android, car la version anglaise de la mise à jour n'a pas encore été publiée. Et oui, je l'ai signalé à PcSoft.

Rubén
Membre enregistré
605 messages
Popularité : +40 (42 votes)
Posté le 23 septembre 2022 - 15:33
Rebonjour. Réponse de PCSoft

"Hi Ruben,

A correction is being validated. It will be available with the Update 4 level 2 version. I will keep you informed as soon as this version is available."

Rubén