sendUserActionEvent()为null


90

我在这里真的很傻。当我单击微调器,打开菜单项或长按打开上下文菜单时,我会收到相同的Logcat消息:

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

标签为ViewRootImpl,消息为sendUserActionEvent() mView == null。我在网上找不到任何有用的信息。我在Android来源中进行了搜索,找到了一些对的引用mView,但是找不到打印此日志消息的文件。作为参考,我使用的是运行4.2.2或API 17的Samsung Galaxy S4。在运行Android 4.3的Nexus 7上进行调试时,不会出现相同的消息。有任何想法吗?这是三星特有的问题吗?



检查我的答案同样的问题,它可能会解决你的代码stackoverflow.com/questions/23016155/...
AJ

Answers:


93

我还在S4中激发了同样的兴趣。我已经在Galaxy Grand,HTC,Sony Experia中测试了该应用程序,但仅在s4中获得了。您可以忽略它,因为它与您的应用程序无关。


您是否还有其他信息,或者知道为什么会发生?
crocboy

2
您的Wi-Fi开启时您是否已连接到互联网?如果没有与互联网的连接,则将出现此信息。
App Work

34
WIFI /连接理论是错误的。两者都对我有用,但是我仍然收到此错误(在S4上)。
radley

2
上面的Logcat消息有时前面还有另一个更有意义的消息:“试图完成输入事件,但输入事件接收器已被处置”
Hartmut Pfitzinger 2014年

1
我认为此错误与设备上的android新版本有关,我在具有版本5.0的Note 3上遇到了这个问题,而对于4.4.2版本的Note 3则没有任何问题.. +我认为这是相关的对话框,因为它是在弹出对话框中输入蓝牙密码时发生的。
克里斯·辛

5

我通过替换context.startActivity(addAccountIntent);在我的Galaxy S4手机上解决了这个问题。使用startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT));


3
正确。对我来说,这实际上是在相同的API中解决相同问题的方法。如果您已经在所需的上下文中,则不需要调用context.startActivity()。仅调用startActivity()就足够了,而且不会因该错误而导致结果。谢谢大家。
Shad 2014年

您能否提供示例代码以帮助解决此问题?谢谢。
布兰登

1
意图addAccountIntent =新意图(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在您的活动/片段上。代码中将启动另一个活动的部分。
霓虹灯Warge '16

0

在Galaxy Tab和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

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

在我注释掉//c.close()之后;运行正常。在您的末端尝试并更新。初始设置为...我在Fragment中有一个列表视图,并尝试通过contextMenu从列表中删除和删除项目。


0

这与在两个不同的活动中具有两个具有相同ID的按钮有关,有时Android Studio找不到,您只需要给按钮一个新的ID并重新构建项目即可


0

在所有三星设备上都是错误的,解决方法是:将这行放入清单中的活动声明中。

android:configChanges="orientation|screenSize"

另外,当您开始活动时,您应该这样做:

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

我用它来使活动成为全屏模式,但是这个问题不需要全屏代码,但是在所有情况下,可能有人需要它,您可以在其余代码中参考这个问题:

如何使VideoView全屏显示

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.