microg/GmsCore · error · IllegalStateException

Neither preferencesResource given, nor overriden getFragment

Error message

Neither preferencesResource given, nor overriden getFragment()

What it means

Configuration guard in AbstractSettingsActivity.getFragment: the subclass set no preferencesResource and did not override getFragment(), so the activity cannot build its content fragment. It fires from onCreate when both options are missing.

Source

Thrown at play-services-core/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSettingsActivity.java:72

        getSupportFragmentManager().beginTransaction()
                .addToBackStack("root")
                .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
                .replace(R.id.content_wrapper, fragment)
                .commit();
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    protected Fragment getFragment() {
        if (preferencesResource == 0) {
            throw new IllegalStateException("Neither preferencesResource given, nor overriden getFragment()");
        }
        ResourceSettingsFragment fragment = new ResourceSettingsFragment();
        Bundle b = new Bundle();
        b.putInt(ResourceSettingsFragment.EXTRA_PREFERENCE_RESOURCE, preferencesResource);
        fragment.setArguments(b);
        return fragment;
    }
}

View on GitHub (pinned to 157c9d86ac)

Solutions

  1. Assign a preferences XML resource in the activity's static/constructor block
  2. Override getFragment() to supply a custom Fragment
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at play-services-core/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSettingsActivity.java:72 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of microg/GmsCore@157c9d86ac (2026-09-06). Data as JSON: /api/errors/c612eee119fd7e0b. Report an issue: GitHub.