{"record":{"id":"ed0f3ee944189489","repo":"Tencent/tinker","slug":"patch-dex-file-directory-not-found-warning-why-th","errorCode":null,"errorMessage":"patch dex file directory not found, warning why the path is null!!!!","messagePattern":"patch dex file directory not found, warning why the path is null!!!!","errorType":"exception","errorClass":"TinkerRuntimeException","httpStatus":null,"severity":"error","filePath":"tinker-android/tinker-android-lib-no-op/src/main/java/com/tencent/tinker/lib/tinker/TinkerLoadResult.java","lineNumber":200,"sourceCode":"                    ShareConstants.TYPE_PATCH_FILE, false);\n                break;\n            case ShareConstants.ERROR_LOAD_PATCH_PACKAGE_CHECK_FAIL:\n                ShareTinkerLog.i(TAG, \"patch package check fail\");\n                if (patchVersionFile == null) {\n                    throw new TinkerRuntimeException(\"error patch package check fail , but file is null\");\n                }\n                int errorCode = intentResult.getIntExtra(ShareIntentUtil.INTENT_PATCH_PACKAGE_PATCH_CHECK, ShareConstants.ERROR_LOAD_GET_INTENT_FAIL);\n                tinker.getLoadReporter().onLoadPackageCheckFail(patchVersionFile, errorCode);\n                break;\n            case ShareConstants.ERROR_LOAD_PATCH_VERSION_DEX_DIRECTORY_NOT_EXIST:\n                if (dexDirectory != null) {\n                    ShareTinkerLog.e(TAG, \"patch dex file directory not found:%s\", dexDirectory.getAbsolutePath());\n                    tinker.getLoadReporter().onLoadFileNotFound(dexDirectory,\n                        ShareConstants.TYPE_DEX, true);\n                } else {\n                    //should be not here\n                    ShareTinkerLog.e(TAG, \"patch dex file directory not found, warning why the path is null!!!!\");\n                    throw new TinkerRuntimeException(\"patch dex file directory not found, warning why the path is null!!!!\");\n                }\n                break;\n            case ShareConstants.ERROR_LOAD_PATCH_VERSION_DEX_FILE_NOT_EXIST:\n                String dexPath = ShareIntentUtil.getStringExtra(intentResult,\n                    ShareIntentUtil.INTENT_PATCH_MISSING_DEX_PATH);\n                if (dexPath != null) {\n                    //we only pass one missing file\n                    ShareTinkerLog.e(TAG, \"patch dex file not found:%s\", dexPath);\n                    tinker.getLoadReporter().onLoadFileNotFound(new File(dexPath),\n                        ShareConstants.TYPE_DEX, false);\n\n                } else {\n                    ShareTinkerLog.e(TAG, \"patch dex file not found, but path is null!!!!\");\n                    throw new TinkerRuntimeException(\"patch dex file not found, but path is null!!!!\");\n                    // tinker.getLoadReporter().onLoadFileNotFound(null,\n                    //     ShareConstants.TYPE_DEX, false);\n                }\n                break;","sourceCodeStart":182,"sourceCodeEnd":218,"githubUrl":"https://github.com/Tencent/tinker/blob/1b7ea02c239840f563ea64fb5bd286eb98d4011e/tinker-android/tinker-android-lib-no-op/src/main/java/com/tencent/tinker/lib/tinker/TinkerLoadResult.java#L182-L218","documentation":"Error \"patch dex file directory not found, warning why the path is null!!!!\" thrown in Tencent/tinker.","triggerScenarios":"Thrown at tinker-android/tinker-android-lib-no-op/src/main/java/com/tencent/tinker/lib/tinker/TinkerLoadResult.java:200 when the library encounters an invalid state.","commonSituations":"Thrown in TinkerLoadResult.parseTinkerResult on ERROR_LOAD_PATCH_VERSION_DEX_DIRECTORY_NOT_EXIST when dexDirectory is null, a state the code marks as 'should not be here'. Indicates corrupted patch application state.","solutions":["Confirm the patch was applied successfully so the dex directory exists under the patch version directory.","Treat a null dexDirectory as an internal error: re-apply the patch rather than retrying the load."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1b7ea02c239840f563ea64fb5bd286eb98d4011e","analyzedAt":"2026-08-14T15:16:52.110Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}