2013-08-03 2 views
75

У меня здесь настоящая doozy. Когда я нажимаю на блесны, открытые пункты меню, или открытые контекстные меню на длинных щелчками я получаю то же LogCat сообщение:sendUserActionEvent() is null

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?

+0

Возможный дубликат [sendUserActionEvent() MView == нуль после нажатия на кнопку] (http://stackoverflow.com/questions/20160737/senduseractionevent-mview- null-after-click-on-button) – akshay

+0

Оплатить мой вопрос по тому же вопросу, вероятно это может исправить код http://stackoverflow.com/questions/23016155/senduseractionevent-mview-null-on-samsung-tab3/40619021 # 40619021 –

ответ

79

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

+0

У вас есть дополнительная информация об этом, или вы знаете, почему это происходит? – crocboy

+0

Это произойдет, если ваш Wi-Fi отключен во время тестирования. Включите WI-FI, и эта ошибка исчезнет. Я подозреваю, что s4 отправляет какое-то пользовательское событие для своих будущих исследований действий пользователя. –

+0

Я получаю эту ошибку независимо от того, включен ли WiFi на – crocboy

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(); Он работает нормально. Попробуйте в конце и обновите Первоначальная настройка как ... У меня есть просмотр списка в Fragment и попытка удалить и элемент из списка через contextMenu.

5

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

+2

Правильно. Это то, что действительно решило ту же проблему, в том же API, для меня. Это ненужные вызовы context.startActivity(), если вы уже находитесь в нужном вам контексте. Достаточно просто вызвать startActivity(), а не результаты этой ошибки. Всем спасибо. – Shad

+0

Не могли бы вы предоставить пример кода, чтобы помочь с этим? Спасибо. – Brandon

+1

Intent addAccountIntent = новый намерение (Settings.ACTION_ADD_ACCOUNT); addAccountIntent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); addAccountIntent.putExtra (Settings.EXTRA_AUTHORITIES, новый String [] {"com.app.yourapp"}); startActivity (addAccountIntent); –

-2

добавить следующее в основной деятельности

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
... 
     if (id == R.id.action_settings) { 
      Intent settingsIntent = new Intent(getApplicationContext(), MySettingsActivity.class); 
      startActivity(settingsIntent); 
      return true; 
     } 
...