public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// original code that causes App to crash
int[] array = new int[2];
array[2] = 3;
}
});
}
}
修复后的代码:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// fixed code
int[] array = new int[3];
array[2] = 3;
}
});
}
}
在这个示例中,原始代码试图渲染一个仅具有两个元素的整数数组,并将第三个元素分配为3。错误已在修复后的代码中得到纠正,现在数组有三个元素,因此不再导致崩溃。