J'ai un Lenovo P770 enraciné, où j'ai désinstallé plusieurs applications "système", y compris le clavier standard, TouchPal. Après une réinitialisation d'usine, j'ai installé AnySoftKeyboard avec adb
( adb shell ime
...), et maintenant cela fonctionne. Cependant, je ne peux plus accéder aux paramètres de langue et de saisie car j'obtiens un message "Malheureusement, les paramètres se sont arrêtés" dès que je touche l'élément de menu. Voici le suivi de pile de adb logcat
:
W/dalvikvm( 8972): threadid=1: thread exiting with uncaught exception (group=0x40db2908)
E/AndroidRuntime( 8972): FATAL EXCEPTION: main
E/AndroidRuntime( 8972): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.SubSettings}: java.lang.NullPointerException
E/AndroidRuntime( 8972): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
E/AndroidRuntime( 8972): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2211)
E/AndroidRuntime( 8972): at android.app.ActivityThread.access$600(ActivityThread.java:149)
E/AndroidRuntime( 8972): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
E/AndroidRuntime( 8972): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 8972): at android.os.Looper.loop(Looper.java:153)
E/AndroidRuntime( 8972): at android.app.ActivityThread.main(ActivityThread.java:5108)
E/AndroidRuntime( 8972): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 8972): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 8972): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
E/AndroidRuntime( 8972): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)
E/AndroidRuntime( 8972): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 8972): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 8972): at android.preference.PreferenceGroup.removePreferenceInt(PreferenceGroup.java:181)
E/AndroidRuntime( 8972): at android.preference.PreferenceGroup.removePreference(PreferenceGroup.java:174)
E/AndroidRuntime( 8972): at com.android.settings.VoiceInputOutputSettings.populateOrRemoveTtsPrefs(VoiceInputOutputSettings.java:144)
E/AndroidRuntime( 8972): at com.android.settings.VoiceInputOutputSettings.populateOrRemovePreferences(VoiceInputOutputSettings.java:94)
E/AndroidRuntime( 8972): at com.android.settings.VoiceInputOutputSettings.onCreate(VoiceInputOutputSettings.java:89)
E/AndroidRuntime( 8972): at com.android.settings.inputmethod.InputMethodAndLanguageSettings.onCreate(InputMethodAndLanguageSettings.java:121)
E/AndroidRuntime( 8972): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:796)
E/AndroidRuntime( 8972): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
E/AndroidRuntime( 8972): at android.app.BackStackRecord.run(BackStackRecord.java:635)
E/AndroidRuntime( 8972): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397)
E/AndroidRuntime( 8972): at android.app.Activity.performStart(Activity.java:5030)
E/AndroidRuntime( 8972): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157)
E/AndroidRuntime( 8972): ... 11 more
W/ActivityManager( 351): Force finishing activity com.android.settings/.SubSettings
W/ActivityManager( 351): Force finishing activity com.android.settings/.Settings
Puisque la trace de la pile mentionne VoiceInputOutputSettings
J'ai essayé d'installer l'application Google (d'après ce que j'ai compris, elle permet la reconnaissance vocale), mais cela n'a rien changé. J'ai également essayé d'installer TouchPal depuis le marché, sans résultat non plus.
Voici les entrées de settings.db
qui semblent pertinents :
_id,name,value
72,selected_spell_checker,com.google.android.inputmethod.latin/com.android.inputmethod.latin.spellcheck.AndroidSpellCheckerService
73,selected_spell_checker_subtype,0
94,input_methods_subtype_history,com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME;834845621:com.menny.android.anysoftkeyboard/.SoftKeyboard;-1
95,selected_input_method_subtype,-1
96,default_input_method,com.menny.android.anysoftkeyboard/.SoftKeyboard
97,enabled_input_methods,com.menny.android.anysoftkeyboard/.SoftKeyboard
Comment puis-je réparer cette panne ?
0 votes
Un redémarrage de la ROM stock fonctionnerait probablement. Il suffit ensuite de s'abstenir de désinstaller les applications dont le système a besoin pour fonctionner.
0 votes
@DanHulme Je pense que ce problème peut être résolu sans reflashage complet. TouchPal n'est certainement pas un type d'application nécessaire au fonctionnement d'Android.
0 votes
Cela pourrait être. Une partie des paramètres de langue et de saisie, la partie "Langue", peut être hébergée par l'application clavier installée et activée dans certains cas, et il peut y avoir d'autres liens croisés entre cette partie et l'application clavier par défaut du système. Si vous pouviez récupérer un APK de TouchPal et l'envoyer à
/system/app
et éventuellement/system/priv-app
En fonction de l'endroit où il a été installé précédemment, cela pourrait résoudre le problème, après un redémarrage et éventuellement une nouvelle réinitialisation des paramètres d'usine. À partir de la prochaine fois, sachez que vous pouvez vous débarrasser en toute sécurité des jeux inutiles et de certaines applications Play, mais ne touchez pas à l'application du clavier.0 votes
J'ai récupéré la dernière version de TouchPal sur le Play Store et je l'ai "convertie en application système" à l'aide de Titanium. Je suppose que cela équivaut à déplacer l'APK vers
/system/app
. Cela n'a rien changé.