PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Soucis avec INITLit et INIEcrit
Soucis avec INITLit et INIEcrit
Débuté par Jude, 15 juil. 2017 16:20 - 6 réponses
Posté le 15 juillet 2017 - 16:20
Bonsoir,
Je développe une application android pour laquelle j'utilise INITLit et INIEcrit pour écrire dans un fichier INI et le lire. Ce fichier sauvegardera l'identifiant et le mot de passe de l’utilisateur sur son smartphone lors de la première identification (faite par l'utilisateur lui-même) en vue d'une identification automatique lors des prochains démarrages de l'application. Le problème est qu'à chaque démarrage de l'application le message suivant apparaît:
Message=Only the original thread that created a view hierarchy can touch its views.
Pile Java=android.view.ViewRootImpl.checkThread(ViewRootImpl.java:7589)
android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:1139)
android.view.ViewGroup.invalidateChild(ViewGroup.java:5033)
android.view.View.invalidateInternal(View.java:12955)
android.view.View.invalidate(View.java:12891)
android.widget.TextView.invalidateRegion(TextView.java:5797)
android.widget.TextView.invalidateCursor(TextView.java:5740)
android.widget.TextView.spanChange(TextView.java:9175)
android.widget.TextView$ChangeWatcher.onSpanAdded(TextView.java:11712)
android.text.SpannableStringBuilder.sendSpanAdded(SpannableStringBuilder.java:985)
android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:694)
android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:611)
android.text.Selection.setSelection(Selection.java:146)
android.text.Selection.setSelection(Selection.java:157)
android.text.method.ArrowKeyMovementMethod.initialize(ArrowKeyMovementMethod.java:318)
android.widget.TextView.setText(TextView.java:4830)
android.widget.TextView.setText(TextView.java:4686)
android.widget.EditText.setText(EditText.java:142)
fr.pcsoft.wdjava.ui.champs.saisie.d.setText(Unknown Source)
fr.pcsoft.wdjava.ui.e.d.a(Unknown Source)
fr.pcsoft.wdjava.ui.champs.saisie.e.setValeur(Unknown Source)
com.masociete.bougepas.wdgen.GWDPBougePas.initProjet(GWDPBougePas.java:210)
fr.pcsoft.wdjava.core.application.WDProjet.demarrer(Unknown Source)
fr.pcsoft.wdjava.core.application.l.a(Unknown Source)
fr.pcsoft.wdjava.core.application.l.doInBackground(Unknown Source)
android.os.AsyncTask$2.call(AsyncTask.java:292)
java.util.concurrent.FutureTask.run(FutureTask.java:237)
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
java.lang.Thread.run(Thread.java:818)
Thread=id=1866
name=AsyncTask #1
priority=5
groupName=main

Cordialement
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 18 juillet 2017 - 08:37
Bonjour Jude,

J'écris les paramètres dans un fichier txt sans problème avec cette structure :
CHEMINTXT est une chaîne = ComplèteRep(fRepEnCours()) + "xxxx.txt"
avec ensuite ChargeTexte(CHEMINTXT) et fSauveTexte(CHEMINTXTI, yyyy)

--
Cordialement
François

http://intra.fr http://intrasoftware.fr
Posté le 18 juillet 2017 - 10:08
Bonjour,
en voyant cela :

Message=Only the original thread that created a view hierarchy can touch its views.

Le problème n'est-il pas ailleurs en fait ?
Un thread qui ferait de la MAJ du GUI

Cordialement
Christian
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 18 juillet 2017 - 10:09
Bonjour,

Aussi, le message "Only the original thread that created a view hierarchy can touch its views" signifie que ta procédure d'identification tente de toucher à l'IHM alors qu'elle est probablement exécutée dans un thread secondaire. Est-ce bien le cas ?

Regarde déjà de ce côté...

Cdlt - Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Posté le 24 juillet 2017 - 09:21
Eric67 a écrit :
Bonjour,

Aussi, le message "Only the original thread that created a view hierarchy can touch its views" signifie que ta procédure d'identification tente de toucher à l'IHM alors qu'elle est probablement exécutée dans un thread secondaire. Est-ce bien le cas ?

Regarde déjà de ce côté...

Cdlt - Eric.

--
Eric DELATTRE
http://www.yoosite.fr


Bonjour
Ma procédure d'identification était exécutée dans le code d'initialisation du projet et à l'exécution de l'application sur un mobile, le message d'erreur apparaissait.
Cdt.
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 24 juillet 2017 - 15:49
Bonjour Jude,

une suggestion : désactive les fonctions INITLit et INIEcrit puis génère un nouvel APK puis lance ce nouvel APK sur un mobile ANDROID.
s'il n'y a plus d'erreur c'est bien INITLit et INIEcrit qui sont en cause.

Quel est le chemin complet de ton fichier ini ?
relire les particularités android ici https://doc.pcsoft.fr/?3013043

--
Cordialement
François

http://intra.fr http://intrasoftware.fr
Membre enregistré
18 messages
Posté le 26 juillet 2017 - 15:21
Pour ma part, j'utilise SauveParamètre et ChargeParametre.