{"record":{"id":"f8725c9e9ec49291","repo":"Tencent/QMUI_Android","slug":"the-qmuiswipebackactivitymanager-is-not-initialize","errorCode":null,"errorMessage":"the QMUISwipeBackActivityManager is not initialized; please call QMUISwipeBackActivityManager.init(Application) in your application.","messagePattern":"the QMUISwipeBackActivityManager is not initialized; please call QMUISwipeBackActivityManager\\.init\\(Application\\) in your application\\.","errorType":"exception","errorClass":"IllegalAccessError","httpStatus":null,"severity":"critical","filePath":"arch/src/main/java/com/qmuiteam/qmui/arch/QMUISwipeBackActivityManager.java","lineNumber":38,"sourceCode":"import android.app.Application;\nimport android.os.Bundle;\nimport androidx.annotation.MainThread;\nimport androidx.annotation.NonNull;\nimport androidx.annotation.Nullable;\n\nimport java.util.Stack;\n\n\npublic class QMUISwipeBackActivityManager implements Application.ActivityLifecycleCallbacks {\n    private static QMUISwipeBackActivityManager sInstance;\n    private Stack<Activity> mActivityStack = new Stack<>();\n    private Activity mCurrentActivity = null;\n\n\n    @MainThread\n    public static QMUISwipeBackActivityManager getInstance() {\n        if (sInstance == null) {\n            throw new IllegalAccessError(\"the QMUISwipeBackActivityManager is not initialized; \" +\n                    \"please call QMUISwipeBackActivityManager.init(Application) in your application.\");\n        }\n        return sInstance;\n    }\n\n    private QMUISwipeBackActivityManager() {\n    }\n\n    public static void init(@NonNull Application application) {\n        if (sInstance == null) {\n            sInstance = new QMUISwipeBackActivityManager();\n            application.registerActivityLifecycleCallbacks(sInstance);\n        }\n    }\n\n    @Override\n    public void onActivityCreated(@NonNull Activity activity, Bundle savedInstanceState) {\n        if(mCurrentActivity == null){","sourceCodeStart":20,"sourceCodeEnd":56,"githubUrl":"https://github.com/Tencent/QMUI_Android/blob/026e7d486677d6593a96689cd590ec3561176717/arch/src/main/java/com/qmuiteam/qmui/arch/QMUISwipeBackActivityManager.java#L20-L56","documentation":"QMUISwipeBackActivityManager is a singleton that must be registered as an Application.ActivityLifecycleCallbacks via init(Application). getInstance() is @MainThread and throws IllegalAccessError when sInstance is null, i.e. when the swipe-back manager was never initialized, because activity tracking (needed for swipe-back gestures) cannot work without it.","triggerScenarios":"Calling QMUISwipeBackActivityManager.getInstance() (or using QMUISwipeBackActivity / swipe-back features) before/without invoking QMUISwipeBackActivityManager.init(application) in your Application subclass; also occurs when the custom Application class is not registered in AndroidManifest.","commonSituations":"Forgetting init() when adding swipe-back to a project, AndroidManifest android:name not pointing at the Application class that performs init, or code paths (unit tests, content providers) running before Application.onCreate.","solutions":["Call QMUISwipeBackActivityManager.init(this) inside your Application.onCreate().","Verify AndroidManifest <application android:name=\".MyApp\"> points to the Application class that performs the init.","Check init() is not gated behind a flag/build variant that skips it (e.g. only in debug).","For non-UI code paths, avoid touching getInstance() before Application.onCreate completes."],"exampleFix":"// before\npublic class MyApp extends Application {\n    @Override public void onCreate() {\n        super.onCreate();\n    }\n}\n// after\n@Override public void onCreate() {\n    super.onCreate();\n    QMUISwipeBackActivityManager.init(this);\n}","handlingStrategy":"validation","validationCode":"if (QMUISwipeBackActivityManager.getInstanceOrNull() == null) { // or guard in Application\n    QMUISwipeBackActivityManager.init(application);\n}","typeGuard":null,"tryCatchPattern":"try {\n    QMUISwipeBackActivityManager.getInstance().someOp();\n} catch (IllegalAccessError e) {\n    QMUISwipeBackActivityManager.init(application);\n    // retry once\n}","preventionTips":["Call QMUISwipeBackActivityManager.init(this) first in Application.onCreate()","Verify AndroidManifest android:name references your Application class","Don't call swipe-back APIs from tests/ContentProviders before app init"],"tags":["android","initialization","swipe-back","singleton"],"backgroundTag":"missing-required-config","analyzedSha":"026e7d486677d6593a96689cd590ec3561176717","analyzedAt":"2026-09-06T13:32:24.816Z","contentChangedAt":"2026-09-06T13:32:24.816Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}