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