{"record":{"id":"c612eee119fd7e0b","repo":"microg/GmsCore","slug":"neither-preferencesresource-given-nor-overriden-g-c612ee","errorCode":null,"errorMessage":"Neither preferencesResource given, nor overriden getFragment()","messagePattern":"Neither preferencesResource given, nor overriden getFragment\\(\\)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"play-services-core/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSettingsActivity.java","lineNumber":72,"sourceCode":"        getSupportFragmentManager().beginTransaction()\n                .addToBackStack(\"root\")\n                .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)\n                .replace(R.id.content_wrapper, fragment)\n                .commit();\n    }\n\n    @Override\n    public boolean onOptionsItemSelected(MenuItem item) {\n        if (item.getItemId() == android.R.id.home) {\n            finish();\n            return true;\n        }\n        return super.onOptionsItemSelected(item);\n    }\n\n    protected Fragment getFragment() {\n        if (preferencesResource == 0) {\n            throw new IllegalStateException(\"Neither preferencesResource given, nor overriden getFragment()\");\n        }\n        ResourceSettingsFragment fragment = new ResourceSettingsFragment();\n        Bundle b = new Bundle();\n        b.putInt(ResourceSettingsFragment.EXTRA_PREFERENCE_RESOURCE, preferencesResource);\n        fragment.setArguments(b);\n        return fragment;\n    }\n}\n","sourceCodeStart":54,"sourceCodeEnd":81,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-core/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSettingsActivity.java#L54-L81","documentation":"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.","triggerScenarios":"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.","commonSituations":"See trigger scenarios.","solutions":["Assign a preferences XML resource in the activity's static/constructor block","Override getFragment() to supply a custom Fragment"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"157c9d86ac46c195a86c2f15ab55c84036223f95","analyzedAt":"2026-09-06T17:27:33.892Z","contentChangedAt":"2026-09-06T17:27:33.892Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}