Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中解决此错误“java.lang.StringIndexOutOfBoundsException:length=0;regionStart=-1;regionLength=0”_Android_Json_Arraylist_Google Sheets - Fatal编程技术网

如何在android中解决此错误“java.lang.StringIndexOutOfBoundsException:length=0;regionStart=-1;regionLength=0”

如何在android中解决此错误“java.lang.StringIndexOutOfBoundsException:length=0;regionStart=-1;regionLength=0”,android,json,arraylist,google-sheets,Android,Json,Arraylist,Google Sheets,我已经实现了一个android应用程序。我想借助getSpreadSheetData和GetSpreadsheetResponse方法从google电子表格中获取数据,但我得到了错误StringIndexOutofBoundException 主要活动 LogCat 请告诉我哪里错了。添加一条记录行,无论您如何操作,并检查起点和终点是否大于或小于结果长度 int start = result.indexOf("{", result.indexOf("{") + 1);

我已经实现了一个android应用程序。我想借助getSpreadSheetData和GetSpreadsheetResponse方法从google电子表格中获取数据,但我得到了错误StringIndexOutofBoundException

主要活动

LogCat


请告诉我哪里错了。

添加一条记录行,无论您如何操作,并检查起点和终点是否大于或小于结果长度

        int start = result.indexOf("{", result.indexOf("{") + 1);
        int end = result.lastIndexOf("}");
System.out.println("Start: " + start + " End: " + end + " results length: " + result.length());
        String jsonResponse = result.substring(start, end);
我想这是说result length=0,而您正试图访问位置-1,这可能是因为result为空,indexOf{不存在,所以它返回-1。

请将您的问题包括在内。这将通过澄清问题帮助堆栈溢出社区。
String jsonResponse = result.substring(start, end);  
08-13 15:55:18.802: E/AndroidRuntime(4157): FATAL EXCEPTION: main
08-13 15:55:18.802: E/AndroidRuntime(4157): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.agrawalassociation/com.example.agrawalassociation.SearchActivity}: java.lang.StringIndexOutOfBoundsException: length=0; regionStart=-1; regionLength=0
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2146)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.app.ActivityThread.access$700(ActivityThread.java:140)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.os.Looper.loop(Looper.java:177)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.app.ActivityThread.main(ActivityThread.java:4947)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at java.lang.reflect.Method.invokeNative(Native Method)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at java.lang.reflect.Method.invoke(Method.java:511)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at dalvik.system.NativeStart.main(Native Method)
08-13 15:55:18.802: E/AndroidRuntime(4157): Caused by: java.lang.StringIndexOutOfBoundsException: length=0; regionStart=-1; regionLength=0
08-13 15:55:18.802: E/AndroidRuntime(4157):     at java.lang.String.startEndAndLength(String.java:593)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at java.lang.String.substring(String.java:1474)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at com.example.agrawalassociation.SearchActivity.getSpreadSheetData(SearchActivity.java:173)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at com.example.agrawalassociation.SearchActivity.onCreate(SearchActivity.java:114)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.app.Activity.performCreate(Activity.java:5207)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
08-13 15:55:18.802: E/AndroidRuntime(4157):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2085)
08-13 15:55:18.802: E/AndroidRuntime(4157):     ... 11 more  
        int start = result.indexOf("{", result.indexOf("{") + 1);
        int end = result.lastIndexOf("}");
System.out.println("Start: " + start + " End: " + end + " results length: " + result.length());
        String jsonResponse = result.substring(start, end);