要查看 Busybox 的版本,请使用此代码
公共字符串busybox_v()抛出IOException {
Process p =Runtime.getRuntime().exec("busybox");
InputStream a = p.getInputStream();
InputStreamReader read = new InputStreamReader(a);
BufferedReader in = new BufferedReader(read);
StringBuilder buffer = new StringBuilder();
String line = null;
try {
while ((line = in.readLine()) != null) {
buffer.append(line);
}
} finally {
read.close();
in.close();
}
String result = buffer.toString().substring(0, 15);
return result;
}
在大多数手机中运行良好,但在 Nexus 4 中,他们向我发送了这个 logcat
java.lang.StringIndexOutOfBoundsException:长度=0;区域开始=0;regionLength=15 at java.lang.String.startEndAndLength(String.java:583) at java.lang.String.substring(String.java:1464) at com.MyPackage.MyApplicationName.Root.busybox_v(Root.java:98)在 com.MyPackage.MyApplicationName.PageFragment$1.onClick(PageFragment.java:101) 在 android.view.View.performClick(View.java:4240) 在 android.view.View$PerformClick.run(View.java:17721)在 android.os.Handler.handleCallback(Handler.java:730) 在 android.os.Handler.dispatchMessage(Handler.java:92) 在 android.os.Looper.loop(Looper.java:137) 在 android.app。 ActivityThread.main(ActivityThread.java:5103) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:525) 在 com.android.internal.os。 ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.
第 98 行对应于 while 的右大括号。我不明白如何解决这个问题。一些帮助?