繁体   English   中英

奇怪的logcat:如何解决?

[英]Weird logcat: How to fix?

要查看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上,他们向我发送了此日志

java.lang.StringIndexOutOfBoundsException:length = 0; regionStart = 0; 在com.MyPackage.MyApplicationName.Root.busybox_v(Root.java:98)处的java.lang.String.substring(String.java:1464)处的java.lang.String.startEndAndLength(String.java:583)处的regionLength = 15在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。 com.android.internal.os上java.lang.reflect.Method.invoke(Method.java:525)上的java.lang.reflect.Method.invokeNative(Native Method)上的ActivityThread.main(ActivityThread.java:5103) ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)位于de.robv.android.xposed.XposedBridge.main(XposedBridge.java:110)在dalvik.system.NativeStart.main(本机方法)

线98对应于while的闭合括号。 我不明白如何解决这个问题。 一些帮助?

您的问题很可能是您的StringBuffer没有16个字符。 您可以尝试这样的事情:

String result = buffer.toString().substring(0, Math.min(buffer.length()-1,15));

要知道的不止这些,问题就变成了结果试图做什么? 如果是十六进制代码,那么在这种情况下,您可能应该在前面加上0。 如果是字符串,则可以添加空格。 最重要的是,如果您未输入16个字符,则应该弄清楚该怎么办,并采取适当的措施。 这可以通过以下方式完成:

if (buffer.length()>=16)
{
    String result = buffer.toString().substring(0, 15);
}
else
{
    //Do something here to manage the exception
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM