sendUserActionEvent () має значення null


90

У мене тут справжній дурник. Коли я натискаю на вертушки, відкриті пункти меню або відкриті контекстні меню при довгих клацаннях, я отримую те саме повідомлення Logcat:

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

Тег є ViewRootImpl, і повідомлення є sendUserActionEvent() mView == null. Я не міг знайти нічого корисного з цього приводу в Інтернеті. Я шукав у джерелах Android і знаходив деякі посилання mView, але не міг знайти файл, у якому надруковано це повідомлення журналу. Для довідки я використовую Samsung Galaxy S4 з версією 4.2.2 або API 17. Те саме повідомлення НЕ виникає під час налагодження на Nexus 7 під управлінням Android 4.3. Будь-які ідеї? Це особлива проблема Samsung?



Перевірте мою відповідь на ту ж проблему, це може виправити ваш код stackoverflow.com/questions/23016155/…
AJ

Відповіді:


93

Я також розмістив те саме в S4. Я тестував програму в Galaxy Grand, HTC, Sony Experia, але отримав лише в s4. Ви можете ігнорувати це, оскільки воно не пов’язане з вашим додатком.


Чи маєте Ви про це більше інформації, чи знаєте, чому це відбувається?
крокбой

2
Чи підключені ви до Інтернету, коли ваш Wi-Fi увімкнено? Це з’явиться, якщо немає з’єднання з Інтернетом.
Додаток до роботи

34
Теорія WIFI / підключення помилкова. Обидва працюють на мене, але я все одно отримую цю помилку (на S4).
radley

2
Вищезазначеному повідомленню Logcat іноді передує інше більш інформативне повідомлення: "Спроба завершити вхідну подію, але приймач вхідної події вже утилізований"
Хартмут Пфітцінгер,

1
Я думаю, що ця помилка пов'язана з новою версією вимкненого Android на пристрої, у мене ця проблема у Примітці 3, що має версію 5.0, тоді як у мене немає проблем з Приміткою 3 з версією 4.4.2 .. до діалогового вікна, оскільки це сталося, коли має з’явитися спливаюче діалогове вікно для введення пароля Bluetooth.
Кріс Сім,

5

Я вирішив цю проблему на своєму телефоні Galaxy S4, замінивши context.startActivity (addAccountIntent); з startActivity (новий намір (Settings.ACTION_ADD_ACCOUNT));


3
Правильно. Це те, що насправді вирішило ту саму проблему в тому самому API. Це непотрібні виклики context.startActivity (), якщо ви вже Є в потрібному вам контексті. Достатньо простого виклику startActivity () плюс не результатів цієї помилки. Всім дякую.
Shad

Надайте, будь ласка, приклад коду, який допоможе з цим? Дякую.
Брендон

1
Intent addAccountIntent = новий намір (Settings.ACTION_ADD_ACCOUNT); addAccountIntent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); addAccountIntent.putExtra (Settings.EXTRA_AUTHORITIES, новий рядок [] {"com.app.yourapp"}); startActivity (addAccountIntent);
droid-zilla

1
@AmitSinha про вашу діяльність / фрагмент. Частина вашого коду, де ви почнете іншу діяльність.
Neon Warge

0

Та сама проблема на вкладці Galaxy та на Xperia S, після видалення та встановлення знову здається, що вона зникає

Код, який раптом викликає цю проблему, такий:

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

Навіть я стикаюся з подібною проблемою після того, як внесли деякі зміни в код, пов'язаний з курсором.

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

Після того, як я прокоментував //c.close (); Це працює нормально. Спробуйте наприкінці та оновіть Початкове налаштування таке ... Я маю перегляд списку у фрагменті та намагаюся видалити елемент із списку за допомогою contextMenu.


0

Це пов’язано з наявністю двох кнопок з однаковим ідентифікатором у двох різних видах діяльності, іноді Android Studio не може знайти, Вам просто потрібно дати своїй кнопці новий ідентифікатор і повторно побудувати проект


0

Це помилка на всіх пристроях Samsung, рішення полягає в тому, що вставте цей рядок у свою декларацію про діяльність у Manifest.

android:configChanges="orientation|screenSize"

також коли ви починаєте діяльність, ви повинні зробити це:

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

Я використовував це для здійснення діяльності у повноекранному режимі, але це питання не потребує повноекранного коду, але у всіх випадках він може комусь знадобитися, ви можете звернутися до цього питання для решти коду:

Як зробити VideoView повноекранним

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.