{
  "id": "android/workmanager-initialization-failure-duplicate",
  "signature": "java.lang.RuntimeException: Unable to create application com.example.MyApplication: androidx.work.WorkManagerInitializationException: Duplicate WorkManager initialization detected",
  "signature_zh": "java.lang.RuntimeException: 无法创建应用程序com.example.MyApplication: androidx.work.WorkManagerInitializationException: 检测到重复的WorkManager初始化",
  "regex": "androidx\\.work\\.WorkManagerInitializationException: Duplicate WorkManager initialization detected",
  "domain": "android",
  "category": "runtime_error",
  "subcategory": null,
  "root_cause": "WorkManager is initialized both automatically via ContentProvider (default in Android 12+) and manually in Application.onCreate(), causing a conflict that throws an exception during app startup.",
  "root_cause_type": "generic",
  "root_cause_zh": "WorkManager既通过ContentProvider自动初始化（Android 12+默认），又在Application.onCreate()中手动初始化，导致冲突，在应用启动时抛出异常。",
  "versions": [
    {
      "version": "WorkManager 2.9.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Android 12 (API 31)",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Android 13 (API 33)",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "WorkManager 2.8.1",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "Remove manual WorkManager.initialize() call but keep custom configuration",
      "why_fails": "If custom configuration is needed (e.g., custom executor), removing the manual call means the auto-init uses default config, losing custom settings.",
      "fail_rate": 0.7,
      "condition": "",
      "sources": []
    },
    {
      "action": "Add try-catch around WorkManager.initialize() to suppress the exception",
      "why_fails": "Suppressing the exception does not resolve the underlying duplicate initialization; WorkManager may be in an inconsistent state.",
      "fail_rate": 0.85,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Disable automatic initialization in AndroidManifest.xml by adding <provider android:name=\"androidx.startup.InitializationProvider\" android:authorities=\"${applicationId}.androidx-startup\" android:exported=\"false\" tools:node=\"merge\"> <meta-data android:name=\"androidx.work.WorkManagerInitializer\" android:value=\"androidx.startup\" tools:node=\"remove\" /> </provider>",
      "success_rate": 0.95,
      "how": "Disable automatic initialization in AndroidManifest.xml by adding <provider android:name=\"androidx.startup.InitializationProvider\" android:authorities=\"${applicationId}.androidx-startup\" android:exported=\"false\" tools:node=\"merge\"> <meta-data android:name=\"androidx.work.WorkManagerInitializer\" android:value=\"androidx.startup\" tools:node=\"remove\" /> </provider>",
      "condition": "",
      "sources": []
    },
    {
      "action": "Use WorkManager.initialize() only in Application.onCreate() after checking if already initialized via a flag. Example: if (!WorkManager.isInitialized()) { WorkManager.initialize(this, config); }",
      "success_rate": 0.9,
      "how": "Use WorkManager.initialize() only in Application.onCreate() after checking if already initialized via a flag. Example: if (!WorkManager.isInitialized()) { WorkManager.initialize(this, config); }",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Disable automatic initialization in AndroidManifest.xml by adding <provider android:name=\"androidx.startup.InitializationProvider\" android:authorities=\"${applicationId}.androidx-startup\" android:exported=\"false\" tools:node=\"merge\"> <meta-data android:name=\"androidx.work.WorkManagerInitializer\" android:value=\"androidx.startup\" tools:node=\"remove\" /> </provider>",
    "Use WorkManager.initialize() only in Application.onCreate() after checking if already initialized via a flag. Example: if (!WorkManager.isInitialized()) { WorkManager.initialize(this, config); }"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://developer.android.com/topic/libraries/architecture/workmanager/advanced/custom-configuration#remove-default-initializer",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.87,
  "fix_success_rate": 0.92,
  "resolvable": "true",
  "first_seen": "2023-08-12",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}