{"record":{"id":"49d73cc614fd9cd6","repo":"Unity-Technologies/UnityCsReference","slug":"format-can-t-be-used-as-a-target-texture-compres","errorCode":null,"errorMessage":"{format} can't be used as a target texture compression for Android","messagePattern":"(.+?) can't be used as a target texture compression for Android","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"Editor/Mono/PlayerSettingsAndroid.bindings.cs","lineNumber":908,"sourceCode":"            }\n\n            public static TextureCompressionFormat[] textureCompressionFormats\n            {\n                get\n                {\n                    return GetTextureCompressionFormatsImpl(BuildTarget.Android);\n                }\n                set\n                {\n                    if (value == null || value.Length == 0)\n                    {\n                        throw new ArgumentException($\"Android textureCompressionFormats can't be null or empty\");\n                    }\n                    foreach (var format in value)\n                    {\n                        if (format == TextureCompressionFormat.Unknown || format == TextureCompressionFormat.BPTC)\n                        {\n                            throw new ArgumentException($\"{format} can't be used as a target texture compression for Android\");\n                        }\n                    }\n                    SetTextureCompressionFormatsImpl(BuildTarget.Android, value);\n                }\n            }\n\n            // Google Play App Dependencies info.\n            [NativeProperty(\"AndroidReportGooglePlayAppDependencies\", TargetType.Function)]\n            public static extern bool reportGooglePlayAppDependencies { get; set; }\n\n            public static extern AndroidApplicationEntry applicationEntry\n            {\n                [NativeMethod(\"GetAndroidApplicationEntry\")]\n                get;\n                [NativeMethod(\"SetAndroidApplicationEntry\")]\n                set;\n            }\n","sourceCodeStart":890,"sourceCodeEnd":926,"githubUrl":"https://github.com/Unity-Technologies/UnityCsReference/blob/225b0fbdb57cc17d094e8056b71f8314aba56f73/Editor/Mono/PlayerSettingsAndroid.bindings.cs#L890-L926","documentation":"Thrown by the PlayerSettings.Android.textureCompressionFormats setter when any format in the array is TextureCompressionFormat.Unknown or TextureCompressionFormat.BPTC. Unknown is not a real format (it's a sentinel/default), and BPTC (BC6H/BC7) is not supported as an Android target compression format — it's a desktop/DX11 format. The build pipeline cannot include either in an Android APK.","triggerScenarios":"Passing an array containing TextureCompressionFormat.Unknown or TextureCompressionFormat.BPTC to the textureCompressionFormats setter. This happens when copying compression format lists from a PC/Mac build configuration to Android, or when a format enum defaults to Unknown (value 0) in an uninitialized array.","commonSituations":"Cross-platform build scripts that share a compression format list across platforms; uninitialized arrays where elements default to the 0 enum value (Unknown); configuration tools that present all TextureCompressionFormat values without filtering for Android.","solutions":["Filter out invalid formats before assignment: formats.Where(f => f != TextureCompressionFormat.Unknown && f != TextureCompressionFormat.BPTC).","Use Android-supported formats only: ETC2, ETC, ASTC, DXT, PVRTC, ATC as applicable.","Initialize arrays explicitly rather than relying on enum default values."],"exampleFix":"// before\nPlayerSettings.Android.textureCompressionFormats = allFormats; // contains Unknown/BPTC\n\n// after\nvar androidFormats = allFormats\n    .Where(f => f != TextureCompressionFormat.Unknown && f != TextureCompressionFormat.BPTC)\n    .ToArray();\nPlayerSettings.Android.textureCompressionFormats = androidFormats;","handlingStrategy":"validation","validationCode":"var validFormats = value\n    .Where(f => f != TextureCompressionFormat.Unknown && f != TextureCompressionFormat.BPTC)\n    .ToArray();\nPlayerSettings.Android.textureCompressionFormats = validFormats;","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Filter out Unknown and BPTC from compression format lists before assigning to Android settings.","Do not share compression format lists across platforms without filtering.","Initialize format arrays explicitly to avoid default Unknown (0) enum values."],"tags":["unity-editor","android","player-settings","texture-compression","invalid-format"],"backgroundTag":null,"analyzedSha":"225b0fbdb57cc17d094e8056b71f8314aba56f73","analyzedAt":"2026-08-13T19:07:19.849Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}