مشکل لاگ های بی مورد در پروژه نوت ( notes ) | حل شد |
سلام دوستان یک مشکل در لاگ ها هست , استاد در پروژه نوت میان برای اولین نمونه میان فیلد task_title دو رکورد رو میخونن و لاگ کت نشون میدن من هم همون کد ها رو نوشتم و اجرا میکنم دو مقدار رو به من میده اما لاگ های اضافی دیگه ایی هم خود Stacktarsce قسمت catch به من میده الان در پایین دقیقا براتون شرح میدم . ممنون
ببینید مسئول ایجاد اون لاگ های اضافه کد زیر هست که تو با کامنت مشخص کردم .
if (result != null) {
try {
JSONArray tasks = new JSONArray(result);
for (int i = 0; i < result.length(); i++) {
JSONObject task = tasks.getJSONObject(i);
Log.i("LOG", task.getString("task_title"));
}
}
//-----------------------------------------------
catch (JSONException e) {
e.printStackTrace();
//-----------------------------------------------
}
}
و کل لاگ های به جز اون دو خط اول از اصل بی دلیل هستن و دلیلش رو خودمنتونست پیدا کنم !؟ دوستان دقت کنند من با برنامه نویسی سرور و کلا با برنامه نویسیش مشکلی ندارم فقط میخوام بدونم از رو کنکاوی که این لاگ ها دلیل ایجاد شدنشون چی هست .
03-22 15:42:19.612: I/LOG(15155): complete work 03-22 15:42:19.612: I/LOG(15155): text for test W/System.err(15155): org.json.JSONException: Index 2 out of range [0..2) W/System.err: at org.json.JSONArray.get(JSONArray.java:263) W/System.err: at org.json.JSONArray.getJSONObject(JSONArray.java:480) W/System.err: at amir.app.webapp.note.NotesActivity.onCreate(NotesActivity.java:24) W/System.err: at android.app.Activity.performCreate(Activity.java:5104) W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) W/System.err: at android.app.ActivityThread.access$600(ActivityThread.java:141) W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) W/System.err: at android.os.Looper.loop(Looper.java:137) W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5041) W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) W/System.err: at java.lang.reflect.Method.invoke(Method.java:511) W/System.err:at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) W/System.err: at dalvik.system.NativeStart.main(Native Method)
خب دو تا آیتم دارید 0 و 1 - حالا اینجا میگه آیتم 2 خارج از بازه هست یعنی مقدار result.length بیشتر از ()tasks.length هست. پس تو حلقه for از ()tasks.length استفاده کنید.
این جملت هم بی مورد هست "از اصل بی دلیل هستن" D:
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .