Tencent/matrix · error · TaskInitException
---APK-UNZIP-PATH ' ' is not exist!
Error message
---APK-UNZIP-PATH '<inputPath>' is not exist!
What it means
Thrown from ResProguardCheckTask.init() when the configured unzip path exists as a string but the corresponding File does not exist on disk. The task needs the actual extracted APK tree; a stale or wrong path (e.g. pointing at a deleted temp directory) causes this TaskInitException before any scanning starts.
Solutions
- Check the configured unzip path for typos
- Run the unpack step of the job first so the directory exists before this task's init()
- Fix filesystem permissions if the path exists but is inaccessible
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at matrix/matrix-android/matrix-apk-canary/src/main/java/com/tencent/matrix/apk/model/task/ResProguardCheckTask.java:62 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Tencent/matrix@3b8293bd65 (2026-09-08).
Data as JSON: /api/errors/2c1857d88562af55.
Report an issue: GitHub.
Appendix: source
Thrown at matrix/matrix-android/matrix-apk-canary/src/main/java/com/tencent/matrix/apk/model/task/ResProguardCheckTask.java:62
private File inputFile;
private Pattern fileNamePattern;
public ResProguardCheckTask(JobConfig config, Map<String, String> params) {
super(config, params);
type = TASK_TYPE_CHECK_RESGUARD;
}
@Override
public void init() throws TaskInitException {
super.init();
String inputPath = config.getUnzipPath();
if (Util.isNullOrNil(inputPath)) {
throw new TaskInitException(TAG + "---APK-UNZIP-PATH can not be null!");
}
Log.i(TAG, "inputPath:%s", inputPath);
inputFile = new File(inputPath);
if (!inputFile.exists()) {
throw new TaskInitException(TAG + "---APK-UNZIP-PATH '" + inputPath + "' is not exist!");
} else if (!inputFile.isDirectory()) {
throw new TaskInitException(TAG + "---APK-UNZIP-PATH '" + inputPath + "' is not directory!");
}
fileNamePattern = Pattern.compile("[a-z_0-9]{1,3}");
}
@Override
public TaskResult call() throws TaskExecuteException {
File resDir = new File(inputFile, ApkConstants.RESOURCE_DIR_PROGUARD_NAME);
try {
TaskResult taskResult = TaskResultFactory.factory(getType(), TASK_RESULT_TYPE_JSON, config);
if (taskResult == null) {
return null;
}
long startTime = System.currentTimeMillis();
if (resDir.exists() && resDir.isDirectory()) {View on GitHub (pinned to 3b8293bd65)