我正在尝试在我的示例Android应用程序中使用getBytes(int start, int end, byte[] data, int index)
方法并在模拟器中进行测试。
我发现该方法在Android 2.0 - 2.3
中运行良好但是在Android 3.0 - 3.1的情况下,它会抛出java.lang.StringIndexOutOfBoundsException
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.opview);
String test="TEST1234";
byte [] bb = new byte[10];
test.getBytes(0, 4, bb, 6);
Log.i("TAG", "Output :"+(new String(bb)));
Log.i("TAG", "OnCreate() End ");
}
此外,我发现IndexOutOfBoundsException
无法发生,因为我的输入不符合以下条件
如果开始< 0,结束> length(),index< 0或结束 - 开始> data.length - 索引。
Android 3.0中是否存在编码问题?
我的问题的解决方法是什么?
答案 0 :(得分:0)
如果你仔细查看Android documentation,就会看到getBytes(int start, int end, byte[] data, int index)
已被弃用。您将使用getBytes()
或getBytes(String)
。
这很可能是因为它在Android 3.0中表现得很奇怪。