Форум программистов, компьютерный форум CyberForum.ru

ArrayIndexOutOfBoundsException - Android

Восстановить пароль Регистрация
 
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
22.05.2013, 17:08     ArrayIndexOutOfBoundsException #1
Есть лог. Понимаю, что ошибка в строке 31, но там скобка. В чём ошибка?
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ex/com.ex.Activity}: java.lang.ArrayIndexOutOfBoundsException: length=5; index=-1
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2073)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2098)
at android.app.ActivityThread.access$600(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4905)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=5; index=-1
at com.findwc.Activity.onCreate(Activity.java:31)
at android.app.Activity.performCreate(Activity.java:5236)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2037)
... 11 more
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        addPreferencesFromResource(R.xml.settings);
        
        prefList = (ListPreference) findPreference("pref");    
            prefList.setDefaultValue(prefList.getEntryValues()[2]);
            String ss = prefList.getValue();
            if (ss == null) {
                prefList.setValue((String)prefList.getEntryValues()[2]);
                ss = prefList.getValue();
            }                         // это 31 строка                      
            prefList.setSummary(prefList.getEntries()[prefList.findIndexOfValue(ss)]);
            prefList.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference, Object newValue) {
                    prefList.setSummary(prefList.getEntries()[prefList.findIndexOfValue(newValue.toString())]);
                    return true;
                }
 
                
            }); 
  }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dr_yand
 Аватар для dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
22.05.2013, 17:14     ArrayIndexOutOfBoundsException #2
Цитата Сообщение от Digetix Посмотреть сообщение
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=5; index=-1
в одном из подобных
Java
1
prefList.getEntries()[prefList.findIndexOfValue(ss)]
не находится элемент, поэтому возвращается индекс -1, и естественно по данному индексу нельзя обратиться к элементу массива
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
22.05.2013, 17:29  [ТС]     ArrayIndexOutOfBoundsException #3
Цитата Сообщение от dr_yand Посмотреть сообщение
не находится элемент, поэтому возвращается индекс -1, и естественно по данному индексу нельзя обратиться к элементу массива
А почему так происходит?
dr_yand
 Аватар для dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
22.05.2013, 17:36     ArrayIndexOutOfBoundsException #4
чтобы понять нужно смотреть что содежится в prefList и что передаете в findIndexOfValue
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
22.05.2013, 17:44  [ТС]     ArrayIndexOutOfBoundsException #5
Цитата Сообщение от dr_yand Посмотреть сообщение
чтобы понять нужно смотреть что содежится в prefList и что передаете в findIndexOfValue
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    <string-array name="rad">
            <item>50 m</item>
            <item>5 km</item>
            <item>10 km</item>
            <item>15 km</item>
            <item>20 km</item>
            <item>25 km</item>
            <item>50 km</item>
            <item>100 km</item>
            <item>Show all</item>
    </string-array>
    <string-array name="radValues">
            <item>0.05</item>
            <item>5</item>
            <item>10</item>
            <item>15</item>
            <item>20</item>
            <item>25</item>
            <item>50</item>
            <item>100</item>
            <item>999999999</item>
    </string-array>
dr_yand
 Аватар для dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
22.05.2013, 17:52     ArrayIndexOutOfBoundsException #6
на самом деле я рекомендовал бы пройтись по этому участку кода дебагером.
и за один проход вы увидите из-за каких значений выпадает программа
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 22:22     ArrayIndexOutOfBoundsException
Еще ссылки по теме:

ArrayIndexOutOfBoundsException постоянно Java SE
Java Java.lang.ArrayIndexOutOfBoundsException
ArrayIndexOutOfBoundsException Java SE
Java SE ArrayIndexOutOfBoundsException: 0 При создании объектов
Eclipse отказывается компилировать. ArrayIndexOutOfBoundsException Java SE

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
22.05.2013, 22:22  [ТС]     ArrayIndexOutOfBoundsException #7
Цитата Сообщение от dr_yand Посмотреть сообщение
на самом деле я рекомендовал бы пройтись по этому участку кода дебагером.
А можете подсказать как это сделать?
Yandex
Объявления
22.05.2013, 22:22     ArrayIndexOutOfBoundsException
Ответ Создать тему
Опции темы

Текущее время: 15:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru