scrcpy --turn-screen-off报错

scrcpy --turn-screen-off报错

scrcpy --turn-screen-off 提供了一种便捷的方式来关闭 Android 设备屏幕,同时保持对其的完全控制。这对于希望减少电池消耗或避免屏幕显示的场景非常有用

在某些情况下,如果你的应用或游戏要求屏幕必须亮着才能正常工作,那么使用 --turn-screen-off 可能会导致这些应用无法正常响应输入。

CANNOT LINK EXECUTABLE "ffmpeg": cannot find "libtheoraenc.so" from verneed[3] in DT_NEEDED list for "/data/data/com.termux/files/usr/lib/libavcodec.so.61.19.101" Failed to run the 'ffmpeg' command.

Setting up ffmpeg (7.1.1-4) ... CANNOT LINK EXECUTABLE "ffmpeg": cannot locate symbol "x265_api_get_215" referenced by "/data/data/com.termux/files/usr/lib/libavcodec.so.61.19.101"... Failed to run the 'ffmpeg' command. To fix the 'ffmpeg' command, manually upgrade all packages by running: pkg upgrade If upgrading packages does not fix it, then please open an issue at https://github.com/termux/termux-packages/issues See also: https://github.com/termux/termux-packages/wiki/Termux-execution-environment#dynamic-library-linking-errors dpkg: error processing package ffmpeg (--configure): installed ffmpeg package post-installation script subprocess returned error exit status 1 dpkg: dependency problems prevent configuration of scrcpy: scrcpy depends on ffmpeg; however: Package ffmpeg is not configured yet.

dpkg: error processing package scrcpy (--configure): dependency problems - leaving unconfigured Errors were encountered while processing: ffmpeg scrcpy E: Sub-process /data/data/com.termux/files/usr/bin/dpkg returned an error code (1)

这个错误表明 Termux 中的 ffmpegscrcpy 包出现了依赖和符号链接问题。以下是完整的解决方案:

解决方案步骤

  1. 首先完全清理损坏的安装
pkg remove ffmpeg scrcpy -y
rm -rf $PREFIX/lib/libav* $PREFIX/lib/libx265*
  1. 更新所有仓库和依赖
pkg update -y && pkg upgrade -y
  1. 重新安装必要组件
pkg install -y x265 ffmpeg scrcpy
  1. 验证修复
ffmpeg -version
scrcpy --version

一般到这就可以正常执行scrcpy --turn-screen-off

如果问题仍然存在

  1. 手动重建符号链接
find $PREFIX/lib -name "*libav*" -delete
find $PREFIX/lib -name "*x265*" -delete
pkg install -y --reinstall ffmpeg
  1. 终极解决方案(重置Termux环境)
termux-reset
pkg update && pkg upgrade
pkg install ffmpeg scrcpy

关键说明

  1. 错误原因

    • x265编解码器库版本不匹配
    • Termux环境变量损坏
    • 部分安装文件不完整
  2. 预防措施

    # 定期维护命令
    pkg clean
    pkg autoclean
    pkg upgrade
    
  3. 替代方案

    # 如果仍然失败,使用静态编译版本
    pkg install static-ffmpeg
    

完整修复脚本

#!/data/data/com.termux/files/usr/bin/bash

echo "[1/5] 清理旧安装..."
pkg remove ffmpeg scrcpy -y
rm -rf $PREFIX/lib/libav* $PREFIX/lib/libx265*

echo "[2/5] 更新仓库..."
pkg update -y && pkg upgrade -y

echo "[3/5] 安装依赖..."
pkg install -y x265 ffmpeg scrcpy

echo "[4/5] 验证修复..."
if ! ffmpeg -version; then
    echo "检测到ffmpeg仍存在问题,执行深度修复..."
    find $PREFIX/lib -name "*libav*" -delete
    find $PREFIX/lib -name "*x265*" -delete
    pkg install -y --reinstall ffmpeg
fi

echo "[5/5] 最终检查..."
scrcpy --version || {
    echo "修复失败,建议执行:"
    echo "termux-reset"
    exit 1
}

echo "所有问题已成功解决!"

注意事项

  1. 执行过程中保持网络连接稳定
  2. 如果使用VPN,建议关闭
  3. 在WiFi环境下操作(避免移动数据中断)
  4. 整个过程可能需要5-10分钟

如果按照以上步骤操作后问题仍然存在,可能是Termux的镜像源问题,可以尝试:

termux-change-repo

然后选择 Mirrors by GrimlerBFSU Mirror (中国用户)