{"record":{"id":"bc6baa2211ed6327","repo":"microg/GmsCore","slug":"the-fully-qualified-name-of-the-implementation-of","errorCode":null,"errorMessage":"The fully qualified name of the implementation of OptionsProvider must be provided as a metadata in the AndroidManifest.xml with key com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME.","messagePattern":"The fully qualified name of the implementation of OptionsProvider must be provided as a metadata in the AndroidManifest\\.xml with key com\\.google\\.android\\.gms\\.cast\\.framework\\.OPTIONS_PROVIDER_CLASS_NAME\\.","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"play-services-cast-framework/src/main/java/com/google/android/gms/cast/framework/CastContext.java","lineNumber":180,"sourceCode":"                if (sessionProvider == null) throw new IllegalArgumentException(\"Additional SessionProvider must not be null.\");\n                if (sessionProvider.getCategory() == null || sessionProvider.getCategory().isEmpty())\n                    throw new IllegalArgumentException(\"Category for SessionProvider must not be null or empty string.\");\n                if (map.containsKey(sessionProvider.getCategory()))\n                    throw new IllegalArgumentException(\"SessionProvider for category \" + sessionProvider.getCategory() + \" already added\");\n                map.put(sessionProvider.getCategory(), sessionProvider.asBinder());\n            }\n        }\n        return map;\n    }\n\n    private static OptionsProvider getOptionsProvider(Context context) {\n        try {\n            Bundle metaData = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA).metaData;\n            String optionsProviderClassName = metaData.getString(OPTIONS_PROVIDER_CLASS_NAME_KEY);\n            if (optionsProviderClassName != null) {\n                return Class.forName(optionsProviderClassName).asSubclass(OptionsProvider.class).getDeclaredConstructor().newInstance();\n            }\n            throw new IllegalStateException(\"The fully qualified name of the implementation of OptionsProvider must be provided as a metadata in the AndroidManifest.xml with key com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME.\");\n        } catch (PackageManager.NameNotFoundException | ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InstantiationException |\n                 InvocationTargetException | NullPointerException e) {\n            throw new IllegalStateException(\"Failed to initialize CastContext.\", e);\n        }\n    }\n\n    @NonNull\n    DiscoveryManager getDiscoveryManager() {\n        return discoveryManager;\n    }\n}\n","sourceCodeStart":162,"sourceCodeEnd":192,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-cast-framework/src/main/java/com/google/android/gms/cast/framework/CastContext.java#L162-L192","documentation":"Error \"The fully qualified name of the implementation of OptionsProvider must be provided as a metadata in the AndroidManifest.xml with key com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME.\" thrown in microg/GmsCore.","triggerScenarios":"Thrown at play-services-cast-framework/src/main/java/com/google/android/gms/cast/framework/CastContext.java:180 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Declare <meta-data android:name=\"com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME\" android:value=\"your.package.YourOptionsProvider\"/> in the app's AndroidManifest.xml","Ensure the named class implements CastContext.OptionsProvider and has a no-arg constructor"],"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-14T00:17:10.932Z"}