Tencent/matrix · error · TaskExecuteException

e.getMessage()

Error message

e.getMessage()

What it means

Raised in ResProguardCheckTask.call(): an unexpected exception (I/O or traversal error while listing resource directories) aborts the task and the catch block rethrows it as a TaskExecuteException carrying e.getMessage(). The job framework then records the task as failed rather than letting the raw exception escape the executor.

Solutions

  1. Inspect the wrapped e.getMessage() to find the failure while scanning res subdirectories
  2. Ensure the res directory and its entries are readable
  3. Re-run after fixing the underlying IO error
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at matrix/matrix-android/matrix-apk-canary/src/main/java/com/tencent/matrix/apk/model/task/ResProguardCheckTask.java:104 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/4c297b7f21ee2832. 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:104

                    File[] dirs = resDir.listFiles();
                    boolean hasProguard = true;
                    for (File dir : dirs) {
                        if (dir.isDirectory() && !fileNamePattern.matcher(dir.getName()).matches()) {
                            hasProguard = false;
                            Log.i(TAG, "directory " + dir.getName() + " has a non-proguard name!");
                            break;
                        }
                    }
                    ((TaskJsonResult) taskResult).add("hasResProguard", hasProguard);
                } else {
                    throw new TaskExecuteException(TAG + "---No resource directory found!");
                }
            }
            taskResult.setStartTime(startTime);
            taskResult.setEndTime(System.currentTimeMillis());
            return taskResult;
        } catch (Exception e) {
            throw new TaskExecuteException(e.getMessage(), e);
        }
    }
}

View on GitHub (pinned to 3b8293bd65)