我在x86_64和x86模拟器中测试了一个Android应用,并在从显示列表的AlertDialog中选择了一个项目后,它崩溃了(Android模拟器意外关闭)。从AppCompatActivity扩展的类中的onOptionsItemSelected重写方法调用AlertDialog。
一些代码:
public class ListViewActivity extends AppCompatActivity {
private static final String TAG = "android-user-interface";
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Toast.makeText(this, "Item de menu seleccionado", Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("titulo")
.setItems(new String[]{"uno", "dos", "tres"}, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//fails before this
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
//return super.onOptionsItemSelected(item);
return true;
}
//...
}
在崩溃窗口中我得到了
Operating system: Windows NT
10.0.10586
CPU: amd64
family 6 model 60 stepping 3
8 CPUs
Crash reason: EXCEPTION_ACCESS_VIOLATION_READ
Crash address: 0x18
Assertion: Unknown assertion type 0x00000000
Process uptime: not available
... more info
有关此问题的一些想法/信息?