sendUserActionEvent () ma wartość null


90

Mam tu naprawdę doozy. Kiedy klikam pokrętła, otwieram elementy menu lub otwieram menu kontekstowe po długich kliknięciach, pojawia się ten sam komunikat Logcat:

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

Tag to ViewRootImpl, a wiadomość to sendUserActionEvent() mView == null. Nie udało mi się znaleźć w sieci nic pomocnego na ten temat. Przeszukałem źródła Androida i znalazłem kilka odniesień mView, ale nie mogłem znaleźć pliku, w którym drukowany jest ten komunikat dziennika. Dla porównania używam Samsunga Galaxy S4 z 4.2.2 lub API 17. Ten sam komunikat NIE pojawia się podczas debugowania na Nexusie 7 z Androidem 4.3. Jakieś pomysły? Czy jest to problem dotyczący firmy Samsung?



Sprawdź moją odpowiedź na ten sam problem, może to naprawić twój kod stackoverflow.com/questions/23016155/ ...
AJ

Odpowiedzi:


93

To samo spotkałem w S4. Testowałem aplikację w Galaxy Grand, HTC, Sony Experia, ale dostałem tylko w s4. Możesz go zignorować, ponieważ nie jest powiązany z Twoją aplikacją.


Czy masz więcej informacji na ten temat, czy wiesz, dlaczego tak się dzieje?
crocboy

2
Czy masz połączenie z Internetem, gdy włączone jest Wi-Fi? Pojawi się, jeśli nie ma połączenia z Internetem.
Aplikacja działa

34
Teoria WIFI / połączenia jest błędna. Oba działają dla mnie, ale nadal otrzymuję ten błąd (na S4).
radley,

2
Powyższy komunikat Logcat jest czasami poprzedzony innym bardziej pouczającym komunikatem: „Próbowano zakończyć zdarzenie wejściowe, ale odbiornik zdarzenia wejściowego został już usunięty”
Hartmut Pfitzinger

1
Myślę, że ten błąd jest związany z nową wersją poza Androidem na urządzeniu, mam ten problem w Note 3 mającej wersję 5.0, podczas gdy nie mam żadnego problemu z Note 3 w wersji 4.4.2 .. + Myślę, że to jest powiązane do okna dialogowego, ponieważ zdarzyło się, że powinno pojawić się wyskakujące okno dialogowe do wprowadzenia hasła Bluetooth.
Chris Sim

5

Rozwiązałem ten problem na moim telefonie Galaxy S4, zastępując context.startActivity (addAccountIntent); z startActivity (nowa intencja (Settings.ACTION_ADD_ACCOUNT));


3
Poprawny. To właśnie rozwiązało dla mnie ten sam problem, w tym samym API. To niepotrzebne wywołania context.startActivity (), jeśli już JESTEŚ w odpowiednim kontekście. Samo wywołanie startActivity () jest wystarczające i nie powoduje tego błędu. Dziękuje wszystkim.
Shad

Czy mógłby Pan podać przykładowy kod, który pomoże w tym? Dziękuję Ci.
Brandon

1
Zamiar addAccountIntent = nowy Zamiar (Ustawienia.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 na temat Twojej aktywności / fragmentu. Część w kodzie, w której uruchomisz inną czynność.
Neon Warge,

0

Ten sam problem na Galaxy Tab i Xperia S, po odinstalowaniu i ponownym zainstalowaniu wydaje się, że zniknął.

Kod, który nagle wydaje się powodować ten problem, jest następujący:

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

Nawet ja napotykam podobny problem po dokonaniu modyfikacji w kodzie związanym z Cursorem.

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

Po wykomentowaniu //c.close (); Działa dobrze. Wypróbuj na swoim końcu i zaktualizuj Początkowa konfiguracja jest taka ... Mam widok listy w Fragment i próbuję usunąć i element z listy za pomocą contextMenu.


0

Ma to związek z posiadaniem dwóch przycisków z tym samym identyfikatorem w dwóch różnych działaniach, czasami Android Studio nie może znaleźć, wystarczy nadać przyciskowi nowy identyfikator i ponownie zbudować projekt


0

Jest to błąd na wszystkich urządzeniach Samsunga, rozwiązaniem jest: umieść ten wiersz w deklaracji aktywności w Manifest.

android:configChanges="orientation|screenSize"

również po rozpoczęciu działalności należy to zrobić:

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

Użyłem tego, aby wykonać działanie w trybie pełnoekranowym, ale to pytanie nie wymaga kodu pełnoekranowego, ale we wszystkich przypadkach może ktoś go potrzebować, możesz odnieść się do tego pytania w pozostałej części kodu:

Jak zrobić VideoView na pełnym ekranie

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.