StackOverflowError, созданный onCreatePreferencesAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 StackOverflowError, созданный onCreatePreferences

Сообщение Anonymous »

При вызове фрагмента предпочтений из моего основного действия этот фрагмент всегда аварийно завершает работу из-за ошибки переполнения стека, вызванной многократным вызовом onCreatePreferences.

У меня есть другие фрагменты, которые загружаются и работают нормально, но они расширяют Fragment, а не PreferenceFragmentCompat. Я вытащил код прямо из документации Android. Также я использую androidx во всем приложении.

Код: Выделить всё

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new   BottomNavigationView.OnNavigationItemSelectedListener() {

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

switch (item.getItemId()) {

case R.id.navigation_dashboard:
selected = MapFragment.newInstance();
break;

case R.id.navigation_notifications:
selected = new PreferencesFragment();
break;
default:
selected = OffersFragment.newInstance(1);
break;

}

transaction.replace(R.id.frame_layout, selected).commit();

return true;
}
};

....

static class PreferencesFragment extends PreferenceFragmentCompat {

@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
super.onCreate(savedInstanceState);
setPreferencesFromResource(R.xml.preferences, rootKey);
}
// TODO: Rename method, update argument and hook method into UI    event

}

Код: Выделить всё

08-15 11:24:47.857 28789-28789/com.xxx E/AndroidRuntime: FATAL        EXCEPTION: main
Process: com.xxx, PID: 28789
java.lang.StackOverflowError: stack size 8MB
at       androidx.preference.PreferenceFragmentCompat.onCreate(PreferenceFragment    Compat.java:141)
at     com.xxx.MainActivity$PreferencesFragment.onCreatePreferences(MainActivity.java:138)

D/Error: ERR: exClass=java.lang.StackOverflowError
ERR: exMsg=stack size 8MB
ERR: file=PreferenceFragmentCompat.java
ERR: class=androidx.preference.PreferenceFragmentCompat
ERR: method=onCreate line=141
ERR: stack=java.lang.StackOverflowError: stack size 8MB
Это настоящая ошибка, которую я получаю. Я не уверен, почему onCreatePreference продолжает вызываться.


Подробнее здесь: https://stackoverflow.com/questions/575 ... references
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»