Android模拟器与首选项活动有关

时间:2015-01-26 09:46:00

标签: java android android-fragments android-emulator android-preferences

我正面临Android模拟器的问题,我已经在谷歌上搜索了一下但我找不到合适的答案。

我在一个活动中有一个简单的应用程序,使用滑动视图(使用android.support.v4.view.PagerTabStrip刷新碎片)。这是好的,除了API 21或高屏幕上的一些奇怪的交换仿真。

我添加了一个偏好活动,通过我的主要活动中的菜单触发:

public boolean onOptionsItemSelected(MenuItem item) {
    ...
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        // start the preference activity
        Intent aIntentPref = new Intent();
        aIntentPref.setClass(MainActivity.this, PrefsActivity.class);
        startActivityForResult(aIntentPref, FC_SETTINGS);
        return true;
    }
    ...
    return super.onOptionsItemSelected(item);
}

我的PrefsActivity类非常简单,只需加载PreferenceFragment,到目前为止只包含一个ListPreference

public class PrefsActivity extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getFragmentManager().beginTransaction().replace(android.R.id.content,
                new PrefsFragment()).commit();
    }
}

在我的设备(hdpi API16)或大多数模拟器中,它运行良好。 我的问题是当我使用带有API21(棒棒糖)或xxhdpi大小的模拟器(使用xxhdpi API 19进行测试,或使用API​​21进行测试 - 甚至是lhdpi)时,单击菜单项时,没有任何反应(应用保留在MainActivity中)但我可以在logcat中看到以下内容:

1817-1817/{pack} W/EGL_emulation﹕ eglSurfaceAttrib not implemented
1817-1817/{pack} W/InputEventReceiver﹕ Attempted to finish an input event but the input event receiver has already been disposed.
1817-1817/{pack} W/InputEventReceiver﹕ Attempted to finish an input event but the input event receiver has already been disposed.
1817-1817/{pack} W/ViewRootImpl﹕ Dropping event due to root view being removed: MotionEvent { action=ACTION_MOVE, id[0]=0, x[0]=115.0, y[0]=76.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=19114, downTime=19114, deviceId=0, source=0x1002 }
  • 我尝试将模拟器内存​​增加到1 GB,但没有帮助。
  • 我尝试使首选项菜单项始终可见,然后我可以点击它并打开首​​选项活动,但是对首选项活动的任何进一步点击都没有效果。

刚刚使用模拟器API 19测试 - mdpi并且它正常工作。

我怀疑仿真器在高分辨率或使用API​​ 21时非常糟糕,是否有人对如何解决此问题或绕过此测试问题有进一步的建议?我没有任何带有API 21的设备。

感谢那些在这里读书的人; - )

修改

使用AndroidStudio更新,它在我的一些Android模拟器测试中会有所改善,但测试时问题仍然存在。在许多设备和API中运行时,我对生产版本没有错误的反馈。所以我猜它没问题,只有模拟器问题。

1 个答案:

答案 0 :(得分:1)

经过这么长时间没有回答,似乎这只是模拟器的一个问题,因为没有报道真正的问题。