android – 按下硬件菜单按钮后ActionBarActivity关闭.没有堆栈跟踪

我有一个非常奇怪的问题.当我在单击硬件菜单按钮(使用Android 2.3的设备)后使用ActionBarActivity时,应用程序意外关闭而没有任何特定错误. Logcat仅提供:

W/KeyCharacterMap﹕ No keyboard for id 0
W/KeyCharacterMap﹕ Using default keymap: /system/usr/keychars/qwerty.kcm.bin
30-30/? I/DEBUG﹕ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-19 15:54:48.612        30-30/? I/DEBUG﹕ Build fingerprint: 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys'
03-19 15:54:48.612        30-30/? I/DEBUG﹕ pid: 785, tid: 785  >>> com.myapp <<<
03-19 15:54:48.612        30-30/? I/DEBUG﹕ signal 11 (SIGSEGV), fault addr 00000002
03-19 15:54:48.612        30-30/? I/DEBUG﹕ r0 00000000  r1 00000001  r2 00000001  r3 00000002
03-19 15:54:48.612        30-30/? I/DEBUG﹕ r4 bead28a4  r5 0000aa50  r6 001240a8  r7 0022b860
...

码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);

    return false;
}

如果main.xml有任何元素,则会出现此问题.

我使用’com.android.support:appcompat-v7:19.0. ‘作为我的gradle依赖.

当我使用Activity时,一切正常.

解决方法:

同样在Android App crashes upon menu button click报道,这似乎是最新的0.9.1版gradle的一个问题,我可以确认它杀死了Froyo以及Gingerbread上的应用程序.阅读有关类似问题here和另一份报告here的更多信息.该问题似乎与新的png处理器有关.正如uchidev所提到的,现在的解决方案是通过更改build.gradle来使用gradle 0.9.0.

还原的备用suggestion:您可以将android.aaptOptions.useAaptPngCruncher = true添加到build.gradle.

2014年3月28日更新:此错误似乎已在Android Studio 0.5.3中得到修复.

上一篇:小米电视去除广告精简系统、删除自带无用软件教程


下一篇:android – getActionBar()在api 19中返回null,目标是api 21 min sdk 16