Tencent/tinker · error · TinkerRuntimeException
error load patch version file not exist, but file is null
Error message
error load patch version file not exist, but file is null
What it means
Error "error load patch version file not exist, but file is null" thrown in Tencent/tinker.
Source
Thrown at tinker-android/tinker-android-lib-no-op/src/main/java/com/tencent/tinker/lib/tinker/TinkerLoadResult.java:179
case ShareConstants.ERROR_LOAD_PATCH_INFO_CORRUPTED:
ShareTinkerLog.e(TAG, "path info corrupted");
tinker.getLoadReporter().onLoadPatchInfoCorrupted(oldVersion, newVersion, patchInfoFile);
break;
case ShareConstants.ERROR_LOAD_PATCH_INFO_BLANK:
ShareTinkerLog.e(TAG, "path info blank, wait main process to restart");
break;
case ShareConstants.ERROR_LOAD_PATCH_VERSION_DIRECTORY_NOT_EXIST:
ShareTinkerLog.e(TAG, "patch version directory not found, current version:%s", currentVersion);
tinker.getLoadReporter().onLoadFileNotFound(patchVersionDirectory,
ShareConstants.TYPE_PATCH_FILE, true);
break;
case ShareConstants.ERROR_LOAD_PATCH_VERSION_FILE_NOT_EXIST:
ShareTinkerLog.e(TAG, "patch version file not found, current version:%s", currentVersion);
if (patchVersionFile == null) {
throw new TinkerRuntimeException("error load patch version file not exist, but file is null");
}
tinker.getLoadReporter().onLoadFileNotFound(patchVersionFile,
ShareConstants.TYPE_PATCH_FILE, false);
break;
case ShareConstants.ERROR_LOAD_PATCH_PACKAGE_CHECK_FAIL:
ShareTinkerLog.i(TAG, "patch package check fail");
if (patchVersionFile == null) {
throw new TinkerRuntimeException("error patch package check fail , but file is null");
}
int errorCode = intentResult.getIntExtra(ShareIntentUtil.INTENT_PATCH_PACKAGE_PATCH_CHECK, ShareConstants.ERROR_LOAD_GET_INTENT_FAIL);
tinker.getLoadReporter().onLoadPackageCheckFail(patchVersionFile, errorCode);
break;
case ShareConstants.ERROR_LOAD_PATCH_VERSION_DEX_DIRECTORY_NOT_EXIST:
if (dexDirectory != null) {
ShareTinkerLog.e(TAG, "patch dex file directory not found:%s", dexDirectory.getAbsolutePath());
tinker.getLoadReporter().onLoadFileNotFound(dexDirectory,
ShareConstants.TYPE_DEX, true);
} else {View on GitHub (pinned to 1b7ea02c23)
Solutions
- Ensure the patch version file (patch.info) exists under the patch version directory before loading.
- Handle ERROR_LOAD_PATCH_VERSION_FILE_NOT_EXIST via LoadReporter.onLoadFileNotFound instead of letting the null file propagate.
When it happens
Trigger: Thrown at tinker-android/tinker-android-lib-no-op/src/main/java/com/tencent/tinker/lib/tinker/TinkerLoadResult.java:179 when the library encounters an invalid state.
Common situations: Thrown in TinkerLoadResult.parseTinkerResult when the load code reports the patch version file is missing but the patchVersionFile reference is unexpectedly null. Indicates inconsistent patch state, e.g. patch directory deleted mid-load.
AI-assisted analysis of Tencent/tinker@1b7ea02c23 (2026-08-14).
Data as JSON: /api/errors/d77c34a5753ba917.
Report an issue: GitHub.