Skip to content

首次启动与其的故障排除

当您首次打开 Termux-X 时,应用会自动执行初始化操作(Bootstrap Installation)。此过程涉及解压核心 Linux 环境文件、设置权限和配置基础 Shell 环境。如图所示:

如果在此阶段遇到问题,通常表现为进度条卡住、应用闪退或弹出错误提示。本文档将根据底层源码逻辑,为您提供详细的故障排除指南。

🚀 首次启动图文引导

当您成功安装并首次打开 Termux-X 时,请按照以下步骤完成初始化设置。

1. 授予文件访问权限

首次启动时,应用会弹出一个“温馨提示”窗口,请求文件访问权限。

  • 必须点击【确定】。这是 Termux-X 正常读写脚本、备份数据和挂载系统所必需的权限。

2. 开启“所有文件访问”权限

点击确定后,系统会跳转到“所有文件访问”设置页面。

  • 请找到 Termux-X,并开启 “允许访问以管理所有文件” 的开关。
  • 开启后,点击左上角返回键回到应用。

3. 阅读并同意用户协议

返回应用后,会显示 Termux-X 的法律声明和使用协议。

  • 请仔细阅读协议内容,特别是关于免责声明和非商用条款。
  • 点击 【同意】 继续。

4. 初始化完成

完成上述步骤后,您将看到 Termux-X 的主界面(如下图所示)。

  • 此时,后台会自动运行初始化脚本(bootstrap),安装核心组件。
  • 请勿立即退出,等待终端出现命令提示符(如 Termux-X:~$)即表示环境准备就绪。


⚠️ 常见错误提示与解决方案

1. 安装闪退 (Crash on Launch)

现象描述: 打开应用后立即闪退,或在“Installing...”界面闪退。 常见原因:

  • 架构不兼容: Termux-X 目前仅支持 aarch64 (ARM64) 架构设备。如果您的设备是 x86 (模拟器) 或 armv7 (老旧设备),应用将无法运行。
  • WebView 版本过低: 应用界面依赖 Android System WebView,版本过低可能导致渲染失败。
  • 系统精简: 部分第三方精简版 ROM 移除了必要的系统组件(如 libandroid.so 依赖库)。
  • 原版 Termux 残留: 如果您之前安装过原版 Termux 且未彻底卸载(包括其插件如 Termux:API, Termux:Styling 等),会导致签名冲突或数据路径冲突,引发闪退。

解决方法:

  • 彻底卸载: 请在系统设置中找到并卸载所有 "Termux" 开头的应用。
  • 检查架构: 确认手机 CPU 是否为 64 位。
  • 更新 WebView: 在应用商店更新“Android System WebView”和“Chrome 浏览器”。
  • 清除数据: 尝试清除应用数据后重启。

2. 应用未安装:软件包与现有软件包存在冲突

错误含义: 手机上已经安装了与 Termux-X 签名不同但包名冲突的应用(通常是原版 Termux 或其他修改版)。 原因: Android 安全机制禁止覆盖安装签名不一致的同包名应用。 解决方法:

  • 卸载冲突应用: 必须卸载设备上现有的 Termux、Termux:API、Termux:Styling 等所有 Termux 相关应用。
  • 检查隐藏应用: 确保没有在“隐私空间”、“应用分身”或“多用户”中残留旧版本。

3. "Termux can only be run as the primary user"

错误含义: Termux 只能作为设备的主用户(Primary User)运行。 原因: Android 系统对多用户环境(如访客模式、应用双开、工作资料)的文件系统路径有严格限制,导致 Termux 无法访问其核心文件。 解决方法:

  • 请切换回手机的主用户(机主)账号。
  • 不要在“应用分身”、“平行空间”或“安全文件夹”中安装 Termux-X。

4. "Termux installed on portable SD"

错误含义: 检测到应用安装在便携式 SD 卡上。 原因: Android 的便携式存储(Portable Storage)通常使用 FAT32/exFAT 文件系统,不支持 Linux 必须的权限管理(如 chmod 和符号链接 symlink)。 解决方法:

  • 将 Termux-X 移动到内部存储
  • 在系统设置中,将应用安装位置改为“内部存储”。

3. "Bootstrap Error" / 安装失败

错误含义: 核心环境包安装失败。 可能原因及排查:

  • 存储空间不足: 首次启动至少需要 200MB+ 的可用内部存储空间。
  • 权限受限: 部分深度定制的 ROM(如 MIUI, HyperOS, ColorOS)可能会拦截 Termux 的底层文件操作。
    • 尝试操作: 在手机管家中允许 Termux-X 的所有权限(自启动、后台运行等)。
  • 架构不匹配: 您下载的 APK 版本与手机 CPU 架构不符(例如在 32位 手机上安装了 64位 包)。
    • 尝试操作: 确认手机架构,重新下载对应版本。

4. 进度条长时间卡住 (Installing...)

原因:

  • 解压缓慢: 在低性能设备上,解压数千个小文件可能需要较长时间。
  • 文件损坏: APK 安装包可能在下载过程中损坏,导致内置的 bootstrap.zip 无法读取。 解决方法:
  • 耐心等待 1-2 分钟。
  • 如果超过 5 分钟无反应,请强制停止应用并清除数据,然后重试。
  • 如果依然无效,请卸载并重新下载最新版 APK 安装。

5. 字体显示异常/未铺满屏幕

现象描述: 在平板或高分辨率设备上,字体显示过小或过大,或者终端界面没有铺满屏幕。 原因: Termux-X 的默认字体大小可能未适配所有设备的 DPI。 解决方法:

  • 手势缩放: Termux-X 支持双指缩放功能。
    • 放大/缩小: 双指按住屏幕,一指向上滑动,另一指向下滑动(或相反),即可自由调整字体大小。
  • 铺满屏幕: 调整字体大小直至布局符合您的视觉习惯。

6. Process completed (code 255) - 进程异常退出

现象描述: 终端启动后立即显示 [Process completed (code 255) - press Enter],无法输入任何命令。

原因:

  • Shell 配置错误: 您的 .bashrc.zshrc 配置文件中存在语法错误。
  • 文件权限丢失: 核心 Shell 程序(如 bash/zsh)的可执行权限被系统或清理软件误删。
  • DNS/网络问题: 某些启动脚本在没有网络的情况下卡死或报错。

解决方法:

  • 侧边栏重置:

    1. 从屏幕右侧向右滑动,打开侧边栏。

    2. 长按 "新Termux shell" (新建会话)

    1. 选择 "Failsafe" (故障安全) 启动。

    1. 如果故障模式能进入,请执行 rm -rf ~/.bashrc ~/.zshrc 重置配置文件。

  • 彻底重置: 如果故障模式也无法进入,请清除应用数据并重新安装。


🛠️ 高级故障排除 (Advanced)

如果您熟悉 Android 调试,可以通过 Logcat 获取更详细的错误信息。

核心安装逻辑解析

Termux-X 的安装器 (TermuxInstaller.java) 执行以下关键步骤:

  1. 环境检查: 检查 $PREFIX 目录是否存在且完整。
  2. 清理旧数据: 删除 $STAGING_PREFIX (临时目录)。
  3. 解压资源: 从 APK 中读取 bootstrap.zip 并解压。
  4. 权限修正:bin/, libexec/ 等目录执行 chmod 0700(这是最容易被系统安全软件拦截的一步)。
  5. 建立链接: 读取 SYMLINKS.txt 并创建符号链接 (Os.symlink)。
  6. 原子移动: 将临时目录重命名为正式目录。

Logcat 关键词

在连接电脑调试时,可搜索以下 Tag 获取错误堆栈:

  • TermuxInstaller
  • termux-bootstrap
bash
adb logcat -s TermuxInstaller

致命错误示例

  • ErrnoException: chmod failed: 系统拦截了权限修改操作。
  • ErrnoException: symlink failed: 文件系统不支持符号链接(通常是因为安装在了 SD 卡)。

🔄 最后的手段:重置应用

如果上述方法都无法解决问题,请按照以下步骤彻底重置:

  1. 打开系统 设置 -> 应用管理 -> Termux-X
  2. 点击 存储 -> 清除数据 (Clear Data)。
  3. 卸载应用。
  4. 重启手机。
  5. 重新安装最新版本的 Termux-X。

Termux-X -xheishou.com- Based on ZeroTermux. Released under GPL v2.0.