PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile (précédentes versions) → Boucle passe 2 fois et après l'application stop
Boucle passe 2 fois et après l'application stop
Débuté par Fared DAKAR, 26 mai 2019 02:23 - 19 réponses
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 26 mai 2019 - 02:23
Salut, j'espère que tout va bien,
J'ai un grand problème avec mon application android crée avec windows mobile 23
Lorsque je lance l'application avec l'emulateur interne de windev il fonctionne tres bien mais quand je utilise l'apk sur un téléphone android une erreur s'affiche est l'application plante.
J'ai essayer un debug avec android monitor et j'ai trouve que une boucle qui cause la probleme cette boucle passe 2 fois mais il s'arrête soudainement.
Voici le code de la boucle:

//Texte est une grand chaîne UNICODE
LesPhrases= ChaîneDécoupe(Texte, "; ")
nbrPhrase = TableauOccurrence( LesPhrases )

POUR Indice = 1 À nbrPhrase
SI ChaîneOccurrence( LesPhrases[Indice], TexteRecherche, MotComplet+SansCasse) <> 0 ALORS
nbrResultat = nbrResultat + 1
TexteAfficher = TexteAfficher + LesPhrases[Indice] + RC
FIN
FIN

Aidez moi SVP.
Membre enregistré
3 330 messages
Popularité : +93 (137 votes)
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 05 juin 2019 - 04:58
Salut merci pour votre reponse mais j'ai pas compris
Membre enregistré
3 330 messages
Popularité : +93 (137 votes)
Posté le 05 juin 2019 - 18:54
texteaffiche=Remplace(texte,";",RC)
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 05 juin 2019 - 22:55
Je crois que n'a pas compris mon code. Pourquoi remplacer les points virgules s'a aide faire á faire quoi?
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 05 juin 2019 - 23:01
Le code fonctionne deux fois et l'application plante sans aucune explication je crois que développent avec windev n'est pas une très bonne aider pour crée des application stable et opérationnel.
Membre enregistré
3 330 messages
Popularité : +93 (137 votes)
Posté le 06 juin 2019 - 07:41
Désolé, mais quand je lis ton code.
tu découpe ton texte a chaque point virgule
puis tu recréer le texte en rajoutant rc
donc en fait si tu remplace point virgule par rc ça revient au même.
Ou sinon faut m'expliquer ton code
car c'est quoi TexteRecherche
Message modifié, 06 juin 2019 - 07:44
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 06 juin 2019 - 12:32
Ok, le code aide a rechercher dans un long texte c'est la variable texte.
Je découpe cette variable a des phrases car après chaque point virgule dans mon variable texte j'ai une phrase dons je sais maintenant le nombre de phrase dans mon texte.
Dans chaque phrase je cherche si la variable entrer par l'utilisateur texterecherche existe ou non dans la phrase. Si elle existe j'affiche la phrase et j'ajoute un retour a ligne RC.
Merci pour votre passion.
Membre enregistré
3 330 messages
Popularité : +93 (137 votes)
Posté le 06 juin 2019 - 16:27
tu peut essayer en faisant
pour toute chaîne phrase de texte séparé par ";"
si ... alors
fin
fin
voir https://doc.pcsoft.fr/?1510018
le pour tout remplace ta boucle
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 06 juin 2019 - 18:30
J'ai essayé, La même problème et la même résultat. C'est juste la changement d'une boucle par une autre.
Message modifié, 06 juin 2019 - 18:31
Membre enregistré
3 330 messages
Popularité : +93 (137 votes)
Posté le 06 juin 2019 - 19:03
Peut tu mettre ton message d'erreur
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 06 juin 2019 - 22:30
Voici le rapport d'erreur:
===== Erreur =====
Date et heure=06/06/2019 20:26:55
Message=Erreur interne.
Message système=length=256; index=1563
Traitement=Initialisation de FEN_ResultatParRecherche.SAI_ResultatParRecherche
Pile WLangage=Initialisation de FEN_ResultatParRecherche.SAI_ResultatParRecherche
Clic gauche sur FEN_Recherche.BTN_RechercherParArticle
Pile Java=fr.pcsoft.wdjava.core.g.r.a(Unknown Source:15)
fr.pcsoft.wdjava.core.g.r.a(Unknown Source:48)
fr.pcsoft.wdjava.b.b.a(Unknown Source:34)
fr.pcsoft.wdjava.a.a.a(Unknown Source:28)
ma.almobarmig.kawanin.wdgen.GWDFFEN_ResultatParRecherche$GWDSAI_ResultatParRecherche.init(Unknown Source:165)
fr.pcsoft.wdjava.ui.b.executerPCode(Unknown Source:5)
fr.pcsoft.wdjava.ui.champs.ab.executerPCode(Unknown Source:3)
fr.pcsoft.wdjava.ui.champs.saisie.c.executerPCode(Unknown Source:3)
fr.pcsoft.wdjava.ui.b.appelPCode(Unknown Source:34)
fr.pcsoft.wdjava.ui.champs.z.appelPCode(Unknown Source:12)
fr.pcsoft.wdjava.ui.champs.f.c(Unknown Source:60)
fr.pcsoft.wdjava.ui.champs.fenetre.WDFenetre.activity_onCreate(Unknown Source:142)
fr.pcsoft.wdjava.ui.activite.g.run(Unknown Source:10)
android.os.Handler.handleCallback(Handler.java:873)
android.os.Handler.dispatchMessage(Handler.java:99)
fr.pcsoft.wdjava.core.g.h.a(Unknown Source:387)
fr.pcsoft.wdjava.ui.champs.fenetre.WDFenetre.ouvre(Unknown Source:49)
fr.pcsoft.wdjava.ui.champs.fenetre.f.ouvre(Unknown Source:77)
fr.pcsoft.wdjava.ui.champs.fenetre.f.ouvrirFenetre(Unknown Source:35)
fr.pcsoft.wdjava.a.j.a(Unknown Source:16)
fr.pcsoft.wdjava.a.j.b(Unknown Source:1)
ma.almobarmig.kawanin.wdgen.GWDFFEN_Recherche$GWDBTN_RechercherParArticle.clicSurBoutonGauche(Unknown Source:71)
fr.pcsoft.wdjava.ui.b.executerPCode(Unknown Source:17)
fr.pcsoft.wdjava.ui.champs.ab.executerPCode(Unknown Source:3)
fr.pcsoft.wdjava.ui.b.appelPCode(Unknown Source:34)
fr.pcsoft.wdjava.ui.champs.z.appelPCode(Unknown Source:12)
fr.pcsoft.wdjava.ui.b.appelPCode_TLM(Unknown Source:7)
fr.pcsoft.wdjava.ui.champs.bouton.c.onClick(Unknown Source:74)
android.view.View.performClick(View.java:7333)
android.widget.TextView.performClick(TextView.java:14160)
android.view.View.performClickInternal(View.java:7299)
android.view.View.access$3200(View.java:846)
android.view.View$PerformClick.run(View.java:27773)
android.os.Handler.handleCallback(Handler.java:873)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:214)
android.app.ActivityThread.main(ActivityThread.java:6981)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
Thread=id=2
name=main
priority=5
groupName=main

===== Application =====
Nom de l'application=مكتبة القوانين المغربية
Version de l'application=2.0.0.0
Nom du package=ma.almobarmig.kawanin
Date et heure de lancement=06/06/2019 20:26:47
Version du framework Android=23.0.125.0 (fr)

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

===== Système =====
Numéro de version d'Android=9 (unknown)
Api Level Android=28
Membre enregistré
3 330 messages
Popularité : +93 (137 votes)
Posté le 06 juin 2019 - 22:36
Morpheus, sur un autre forum a donner la réponse :
2 choses

a) Sur l'écran de configuration du wizzard de génération d'applications, cliquez sur Paramètres avancés dans la liste déroulante SDK Android. Sélectionnez le SDK cible 8.0.0 (pour le niveau 26) 8.1 pour le niveau (27).
b) cliquez sur edit manifeste, il y a une section appelée USES-SDK sous cette section est un paramètre appelé ANDROID: TARGETSDKVERSION, vous verrez que même si vous avez choisi le niveau 26 ou 27 SDK avant la version 24 (c'est à dire codé par windev) double-cliquez sur ce paramètre et le changer exactement à la même version que vous avez choisi sur le point A

Choisi le niveau 28
Message modifié, 06 juin 2019 - 22:37
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 07 juin 2019 - 03:03
J'ai encore essayer ... c'est la meme erreur :(
Membre enregistré
3 330 messages
Popularité : +93 (137 votes)
Posté le 07 juin 2019 - 07:13
Désolé je ne vois pas ce que ça peut être.
ou bien ton erreur vient d'un autre endroit de ton code
dans l'initialisation de ta fenêtre.
met des info dans tous ton code pour temporiser celui-ci et vérifier l'endroit exact
de où cela ce produit.
As tu essayer sur d'autres appareils et d'autres versions d'Android ?
Si c'est ton seul appareil , desinstalle complètement l'application avant de la réinstaller.
Message modifié, 07 juin 2019 - 07:20
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 07 juin 2019 - 13:02
Oui, j'ai essayer plus un appareils avec des version différents d'android est la résultat la même. Peut-être la longueurs de la chaine texte surcharge la mémoire de téléphone?
Membre enregistré
309 messages
Popularité : +31 (37 votes)
Posté le 25 juin 2019 - 14:44
Bonjour,
Il faudrait éventuellement essayer sans tableau :

POUR TOUTE chaîne unephrase de Texte SEPAREE PAR ";"
SI Position(unephrase,texteRecherche,1,MotComplet+SansCasse) ALORS
texteAfficher+=unephrase+RC
FIN
FIN


Bon dev
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 26 juin 2019 - 01:40
même problème }:(
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 26 juin 2019 - 11:29
Bonjour Fared,

Quelle est la taille de ton texte à découper ?
sinon tu peux réaliser une "trace" dans ton appli comme indiqué ici dans ma réponse ici:
https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/36938-crash-apk-messagedate-invalide/read.awp

Je crois aussi avoir développé cela dans le forum.

--
Cordialement
François
Membre enregistré
14 messages
Popularité : +2 (2 votes)
Posté le 24 juillet 2019 - 22:35
La taille? Par octets ou nbr de caractères ? C'est un peu long.