sendUserActionEvent () est nul


90

J'ai un vrai doozy ici. Lorsque je clique sur des flèches, ouvre des éléments de menu ou ouvre des menus contextuels sur des clics longs, j'obtiens le même message Logcat:

08-02 21:20:57.264: E/ViewRootImpl(31835): sendUserActionEvent() mView == null

La balise est ViewRootImpl, et le message est sendUserActionEvent() mView == null. Je n'ai rien trouvé d'utile à ce sujet sur le Web. J'ai cherché dans les sources Android et trouvé des références à mView, mais je n'ai pas pu trouver le fichier dans lequel ce message de journal est imprimé. Pour référence, j'utilise un Samsung Galaxy S4 exécutant 4.2.2 ou API 17. Le même message ne se produit PAS lors du débogage sur un Nexus 7 exécutant Android 4.3. Des idées? Est-ce un problème spécifique à Samsung?



Vérifiez ma réponse pour le même problème, cela pourrait corriger votre code stackoverflow.com/questions/23016155/...
AJ

Réponses:


93

J'ai également rencontré la même chose dans S4. J'ai testé l'application dans Galaxy Grand, HTC, Sony Experia mais je l'ai seulement en s4. Vous pouvez l'ignorer car il n'est pas lié à votre application.


Avez-vous plus d'informations à ce sujet ou savez-vous pourquoi cela se produit?
crocboy

2
Êtes-vous connecté à Internet lorsque votre connexion Wi-Fi est activée? Cela apparaîtra s'il n'y a pas de connectivité à Internet.
App Work

34
La théorie WIFI / connexion est fausse. Les deux fonctionnent pour moi, mais j'obtiens toujours cette erreur (sur S4).
radley

2
Le message Logcat ci-dessus est parfois précédé d'un autre message plus informatif: "Tentative de terminer un événement d'entrée mais le récepteur d'événements d'entrée a déjà été éliminé"
Hartmut Pfitzinger

1
Je pense que cette erreur est liée à une nouvelle version d'Android sur un appareil, j'ai ce problème sur la note 3 ayant la version 5.0 alors que je n'ai aucun problème avec la note 3 avec la version 4.4.2 .. + Je pense que c'est lié à une boîte de dialogue, car cela s'est produit lorsqu'une boîte de dialogue contextuelle doit apparaître pour saisir le mot de passe Bluetooth.
Chris Sim

5

J'ai résolu ce problème sur mon téléphone Galaxy S4 en remplaçant context.startActivity (addAccountIntent); avec startActivity (new Intent (Settings.ACTION_ADD_ACCOUNT));


3
Correct. C'est ce qui a vraiment résolu le même problème, dans la même API, pour moi. Il est inutile d'appeler context.startActivity () si vous êtes déjà dans le contexte souhaité. L'appel de startActivity () est suffisant et ne produit pas cette erreur. Merci tout le monde.
Shad

Pourriez-vous s'il vous plaît fournir un exemple de code pour vous aider? Je vous remercie.
Brandon

1
Intent addAccountIntent = new Intent (Settings.ACTION_ADD_ACCOUNT); addAccountIntent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); addAccountIntent.putExtra (Settings.EXTRA_AUTHORITIES, new String [] {"com.app.yourapp"}); startActivity (addAccountIntent);
droid-zilla

1
@AmitSinha sur votre activité / fragment. La partie de votre code où vous lancerez une autre activité.
Neon Warge

0

Même problème sur un Galaxy Tab et sur un Xperia S, après désinstallation et réinstallation, il semble que disparaître.

Le code qui semble soudainement soulever ce problème est le suivant:

public void unlockMainActivity() {
    SharedPreferences prefs = getSharedPreferences("CALCULATOR_PREFS", 0);
    boolean hasCode = prefs.getBoolean("HAS_CODE", false);
    Context context = this.getApplicationContext();
    Intent intent = null;

    if (!hasCode) {
        intent = new Intent(context, WellcomeActivity.class);
    } else {
        intent = new Intent(context, CalculatingActivity.class);
    }
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    (context).startActivity(intent);
}

0

Même je suis confronté à un problème similaire après avoir modifié le code lié à Cursor.

public boolean onContextItemSelected(MenuItem item) 
{
        AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
        Cursor c = (Cursor)adapter.getItem(info.position);
        long id = c.getLong(...);
        String tempCity = c.getString(...);
            //c.close();
...
}

Après avoir commenté //c.close (); Cela fonctionne bien. Essayez à votre fin et mettez à jour La configuration initiale est comme ... J'ai une vue de liste dans Fragment, et j'essaie de supprimer un élément de la liste via contextMenu.


0

Cela a à voir avec le fait d'avoir deux boutons avec le même ID dans deux activités différentes, parfois Android Studio ne peut pas trouver, il vous suffit de donner à votre bouton un nouvel ID et de recréer le projet


0

C'est une erreur sur tous les appareils Samsung, la solution est: mettez cette ligne dans votre déclaration d'activité dans Manifest.

android:configChanges="orientation|screenSize"

également lorsque vous commencez l'activité, vous devez faire ceci:

Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.setType(Settings.ACTION_SYNC_SETTINGS);
CurrentActivity.this.startActivity(intent);
finish();

Je l'ai utilisé pour créer une activité en mode plein écran, mais cette question n'a pas besoin du code plein écran, mais dans tous les cas, quelqu'un pourrait en avoir besoin, vous pouvez vous référer à cette question pour le reste du code:

Comment rendre VideoView plein écran

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.