PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Application se ferme seule. WM28 Android 14
Application se ferme seule. WM28 Android 14
Débuté par Michel GARCIA, 29 jan. 2024 18:38 - 14 réponses
Membre enregistré
392 messages
Popularité : +12 (12 votes)
Posté le 29 janvier 2024 - 18:38
Bonsoir à tous,

Je rencontre un problème curieux, au bout de 10 secondes que mon appli reste affichée sans aucune action de ma part (je dois appuyer sur une image ou sur un bouton pour déclencher une action), l'appli se ferme.

Existe-t'il un moyen d'éviter cela ?

L'appli est générée en Android 8.1 (j'ai essayé avec 6,7,8) et tourne sur un téléphone OPPO X5 Pro avec Android 14, version 14.0.0.301 (mise à jour le 29/01/2024). Le problème se pose aussi avec la mise à jour d'Android.

Merci pour votre aide.
Michel

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.
Posté le 29 janvier 2024 - 18:41
Regardez dans le logs avec le Centre de Controle Android pour vérifier si une erreur n'est pas affichée dans le logcat.
Membre enregistré
392 messages
Popularité : +12 (12 votes)
Posté le 29 janvier 2024 - 21:28
Bon, je viens de faire une appli simple, avec une fenêtre, et une boîte de dialogue OuiNon. Testé sur des appareils LENOVO Android 11, et SAMSUNG Android 10, tout va bien, pas de plantage, quelle que soit la version de génération (6 à 11).

Testé avec WM29 (2024), en Android 14, plantage assûré, peut importe la version de génération, WM 29 a fait la mise à jour de graddle et du SDK android automatiquement.

Si quelqu'un a un workaround, je suis ouvert à toute proposition.
Merci

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.
Membre enregistré
3 347 messages
Popularité : +93 (137 votes)
Posté le 30 janvier 2024 - 07:23
Salut,
Il faut absolument que le SDK soit en Android 14 pour qu'il puisse s'exécuter sur ton appareil OPPO
Si tu regardes le SDK de wm 2024
https://www.pcsoft-windev-webdev.com/update/WDJava290.update
Et l'api level de la 14 est 34
https://apilevels.com/
Ça a l'air d'être le bon SDK
Donc compile bien avec la 14, et si cela ne fonctionne toujours pas
Alors contacte le support PCSOFT

C'est peut être une nouvelle sécurité d'Android
Tiens nous au courant
Membre enregistré
392 messages
Popularité : +12 (12 votes)
Posté le 30 janvier 2024 - 09:16
Salut Popoy,

merci pour ta réponse. Le ST m'a donné une info très intéressante, que je partage ci-dessous, pour éviter de passer des heures à se tirer les cheveux (c'est pour cela que j'ai une patinoire à mouches au lieu de la tignasse que j'avais dans ma jeunesse... :) )

Bonjour Monsieur GARCIA,
Pour assurer le bon fonctionnement d'une application Android sur ces appareils, il est actuellement essentiel de ne pas exécuter de traitements bloquants de plus de 15 secondes.

Cela implique notamment :
- L'utilisation d'InfoAsynchrone au lieu de Info.
- L'utilisation d'ErreurAsynchrone au lieu d'Erreur.
- L'utilisation d'OuiNonAsynchrone au lieu de OuiNon.
- L'utilisation de ConfirmerAsynchrone au lieu de Confirmer, et ainsi de suite pour toutes les fonctions de dialogue.
- Préférer l'utilisation d'OuvreFenêtreMobile plutôt que Ouvre.
- Tous les traitements nécessitant plus de 15 secondes doivent être exécutés dans un thread ou une tâche parallèle. Si un tel traitement met à jour l'interface, il doit appeler une autre procédure en utilisant ExécuteThreadPrincipalAsynchrone.

Il est important de noter que ces directives nécessaires pour les terminaux OPPO sont conformes aux recommandations de Google et d'Apple pour tous les appareils Android et iOS.
L'équipe du Support Technique Gratuit reste à votre disposition.

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.
Membre enregistré
493 messages
Popularité : +24 (30 votes)
Posté le 30 janvier 2024 - 09:23
salut,
effectivement, j'ai eu le problème avec un oppo x5, j'ai fini par trouver l'info comme quoi Color Os ne permet pas un traitement bloquant plus de 15 secondes, c'est tres pénalisant, j'ai changé de tel.
les applis comme soodispatch n'arrivent pas a démarrer car trop longues a récupérer les infos sur le net.
j'ai tourné en rond 15 jours sur une appli que j'avais fait et qui voulait plus marcher depuis que j'avais ce tel, j'avais imputé ça a la version plus récente d'Android, ben non, juste Color OS

--
José
Membre enregistré
392 messages
Popularité : +12 (12 votes)
Posté le 31 janvier 2024 - 03:41
Pour info, j'ai testé la solution proposée par le ST, elle fonctionne, mais il est impossible de récupérer MaFenêtreFille.ValeurRenvoyée lors de la fermeture de la fenêtre. Autre problème, je n'ai réussi à aucun moment à arrêter un thread ou une tâcheparallèle, si l'on ajoute une boucle de test d'appel de fin de thread / tacheparallele avec un multitache, et bien Color OS OPPO reprend la main et kille l'appli au bout de 15 secondes...

J'ai peut-être fait une erreur dans ma manière de programmer, mais je crois qu'il n'y a pas moyen actuellement de gérer cela.

Si nous sommes plusieurs à avoir des OPPO , nous pourrions chercher une solution ensemble, qui serait utile pour tous.

Voilà, bonne journée ... 03h40 du matin et je suis encore sur ce truc infernal !

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.
Membre enregistré
3 347 messages
Popularité : +93 (137 votes)
Posté le 31 janvier 2024 - 07:35
Salut
L'histoire des 15 secondes existait déjà depuis Android 10
PCSOFT a d'ailleurs déjà fait un exemple dans une LST de programmation asynchrone.
Par contre, depuis quand la fonction ouvre fonctionne sur mobile ?

J'ai réussi à faire en sorte qu'une fenêtre renvoie une information a une autre via les indirections
Il faut que je retrouve mon code
Membre enregistré
392 messages
Popularité : +12 (12 votes)
Posté le 31 janvier 2024 - 14:26
Salut Popoy,

Je ne vois pas comment récupérer l'information, même via une indirection (je les ai utilisées dans plusieurs de mes composants sans problèmes), car dès qu'une ligne de code suit la tacheparallelle, ou le thread, et bien Color OS considère que l'appli est en mode bloquant et va la tuer au bout de 15 secondes.


LST n°101 : WM Programmation Asynchrone
LST n°90 : Android Images en ligne (threads)

Mais rien sur les tâches parallèles.

Pour l'instant je vais me concentrer sur le dév de l'appli, et je verrais plus tard pour Color OS. Je vais regarder s'il y a moyen de détecter l'OS et d'informer la non-compatibilité.

Toute suggestion est la bienvenue.
Merci.

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.
Membre enregistré
3 347 messages
Popularité : +93 (137 votes)
Posté le 31 janvier 2024 - 15:31
Salut
Il y a déjà SysVersionAndroid
Membre enregistré
392 messages
Popularité : +12 (12 votes)
Posté le 01 février 2024 - 10:50
Popoy a écrit :
Salut
Il y a déjà SysVersionAndroid


Bonjour Popoy,
Merci pour la suggestion, je viens de tester, j'arrive récupérer ApiLevel, VersionNuméro, mais pour VersionPlateforme la valeur retournée est "inconnue" (unknown)...

Pour l'instant je continue le développement, histoire de terminer l'appli, et je regarderai après voir s'il existe d'autres solutions.

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.
Membre enregistré
3 347 messages
Popularité : +93 (137 votes)
Posté le 01 février 2024 - 13:59
Membre enregistré
392 messages
Popularité : +12 (12 votes)
Posté le 01 février 2024 - 16:25
Impecc ! J'ai pu mettre cela en place, et pour l'instant, si l'appli détecte un OPPO, elle va afficher un message d'info et s'arrêter.

Merci Popoy pour tes éclairages !

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.
Membre enregistré
102 messages
Popularité : +1 (1 vote)
Posté le 05 février 2024 - 16:45
Bonjour,

J'ai des valeurs renvoyées entre les fenêtres filles et les fenêtre appelante, sans problème avec WM28.
- J'ouvre les fenêtre par un OuvreFenetreMobile
- dans le bloc de code Fermeture d'une fenêtre fille de la fenêtre appelante je tests les valeurs de retour par MaFenetreFille..ValeurRenvoyée, si j'ai plusieurs fenêtres filles je teste avec MaFenetreFille..Nom
Membre enregistré
493 messages
Popularité : +24 (30 votes)
Posté le 08 février 2024 - 12:30
Silverin a écrit :
Bonjour,

J'ai des valeurs renvoyées entre les fenêtres filles et les fenêtre appelante, sans problème avec WM28.
- J'ouvre les fenêtre par un OuvreFenetreMobile
- dans le bloc de code Fermeture d'une fenêtre fille de la fenêtre appelante je tests les valeurs de retour par MaFenetreFille..ValeurRenvoyée, si j'ai plusieurs fenêtres filles je teste avec MaFenetreFille..Nom


salut
oui, mais est-ce que ca marche avec l'asynchrone?

--
José
Message modifié, 08 février 2024 - 12:31