sendUserActionEvent () ist null


90

Ich habe hier einen echten Trottel. Wenn ich mit langen Klicks auf Spinner klicke, Menüelemente öffne oder Kontextmenüs öffne, erhalte ich dieselbe Logcat-Meldung:

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

Das Tag ist ViewRootImplund die Nachricht ist sendUserActionEvent() mView == null. Ich konnte im Web nichts Hilfreiches dazu finden. Ich habe die Android-Quellen durchsucht und einige Verweise auf gefunden mView, aber ich konnte die Datei, in der diese Protokollnachricht gedruckt ist, nicht finden. Als Referenz verwende ich ein Samsung Galaxy S4 mit 4.2.2 oder API 17. Die gleiche Meldung wird beim Debuggen auf einem Nexus 7 mit Android 4.3 NICHT angezeigt. Irgendwelche Ideen? Ist das ein Samsung-spezifisches Problem?



Überprüfen Sie meine Antwort auf das gleiche Problem, es könnte Ihren Code stackoverflow.com/questions/23016155/…
AJ

Antworten:


93

Das habe ich auch in S4 gesehen. Ich habe die App in Galaxy Grand, HTC und Sony Experia getestet, aber nur in s4. Sie können es ignorieren, da es nicht mit Ihrer App zusammenhängt.


Haben Sie weitere Informationen dazu oder wissen Sie, warum dies geschieht?
Crocboy

2
Sind Sie mit dem Internet verbunden, während Ihr WLAN eingeschaltet ist? Dies wird angezeigt, wenn keine Verbindung zum Internet besteht.
App Work

34
Die WIFI / Verbindungstheorie ist falsch. Beide arbeiten für mich, aber ich erhalte immer noch diesen Fehler (auf S4).
Radley

2
Der obigen Logcat-Nachricht geht manchmal eine weitere informativere Nachricht voraus: "Es wurde versucht, ein Eingabeereignis zu beenden, aber der Empfänger des Eingabeereignisses wurde bereits entsorgt"
Hartmut Pfitzinger

1
Ich denke, dieser Fehler hängt mit einer neuen Version von Android auf einem Gerät zusammen. Ich habe dieses Problem mit Note 3 mit Version 5.0, während ich mit Note 3 mit Version 4.4.2 kein Problem habe. + Ich denke, das hängt damit zusammen zu einem Dialog, weil es passiert ist, wenn ein Popup-Dialog zur Eingabe des Bluetooth-Passworts angezeigt werden soll.
Chris Sim

5

Ich habe dieses Problem auf meinem Galaxy S4-Telefon gelöst, indem ich context.startActivity (addAccountIntent) ersetzt habe. mit startActivity (neue Absicht (Settings.ACTION_ADD_ACCOUNT));


3
Richtig. Dies ist es, was für mich wirklich das gleiche Problem in der gleichen API gelöst hat. Es ist unnötig, context.startActivity () aufzurufen, wenn Sie sich bereits im gewünschten Kontext befinden. Das Aufrufen von startActivity () ist ausreichend und führt nicht zu diesem Fehler. Vielen Dank an alle.
Shad

Würden Sie bitte einen Beispielcode angeben, um dies zu unterstützen? Danke dir.
Brandon

1
Absicht addAccountIntent = neue Absicht (Settings.ACTION_ADD_ACCOUNT); addAccountIntent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); addAccountIntent.putExtra (Settings.EXTRA_AUTHORITIES, neuer String [] {"com.app.yourapp"}); startActivity (addAccountIntent);
Droid-Zilla

1
@AmitSinha über Ihre Aktivität / Fragment. Der Teil in Ihrem Code, in dem Sie eine andere Aktivität starten.
Neon Warge

0

Das gleiche Problem auf einem Galaxy Tab und einem Xperia S, nach der Deinstallation und erneuten Installation scheint es zu verschwinden.

Der Code, der dieses Problem plötzlich aufwirft, lautet wie folgt:

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

Sogar ich habe ein ähnliches Problem, nachdem ich einige Änderungen im Code in Bezug auf Cursor vorgenommen habe.

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();
...
}

Nachdem ich //c.close () auskommentiert habe; Es funktioniert gut. Probieren Sie es am Ende aus und aktualisieren Sie die Ersteinrichtung ist wie folgt: Ich habe eine Listenansicht in Fragment und versuche, ein Element aus der Liste über contextMenu zu löschen und zu löschen.


0

Dies hat damit zu tun, dass zwei Schaltflächen mit derselben ID in zwei verschiedenen Aktivitäten vorhanden sind. Manchmal kann Android Studio sie nicht finden. Sie müssen Ihrer Schaltfläche lediglich eine neue ID geben und das Projekt neu erstellen


Ist es so? Hat es das Problem gelöst?
Astha

0

Es ist ein Fehler auf allen Samsung-Geräten. Die Lösung lautet: Fügen Sie diese Zeile in Ihre Aktivitätserklärung in Manifest ein.

android:configChanges="orientation|screenSize"

Auch wenn Sie die Aktivität starten, sollten Sie Folgendes tun:

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

Ich habe dies verwendet, um eine Aktivität als Vollbildmodus zu erstellen, aber für diese Frage wird der Vollbildcode nicht benötigt. In allen Fällen kann es jedoch erforderlich sein, dass jemand diese Frage für den Rest des Codes verwendet:

So erstellen Sie VideoView im Vollbildmodus

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.