在 Android 14 上使用 scrcpy 的投屏问题与解决方案
随着 Android 系统版本的升级,部分底层 API 会发生变化,导致一些工具在新版本上出现兼容性问题。近期在 Firefly AIO-3588Q 板卡上测试时,就遇到了 scrcpy 在 Android 14 上投屏报错的情况。
问题表现
在使用 scrcpy 1.24 时,日志中出现以下错误:
-
剪贴板接口报错
java.lang.NoSuchMethodException: android.content.IClipboard$Stub$Proxy.addPrimaryClipChangedListenerAndroid 14 已经移除了或修改了该方法,导致 scrcpy 无法调用。
-
输入事件注入失败
Caused by: java.lang.NullPointerException at android.hardware.input.InputManager.getInstance(InputManager.java:271)说明 scrcpy 的旧实现与 Android 14 的新接口不兼容。
结果是:投屏无法正常使用,触控和输入事件也无法注入。
解决办法
升级到 scrcpy 3.3.4 后,问题得到解决:
-
设备能够被正确识别:
INFO: Device: [Firefly] Firefly AIO-3588Q (Android 14) -
服务端推送成功,渲染器初始化完成:
INFO: Renderer: direct3d INFO: Initial texture: 1920x1080 -
投屏功能恢复正常,输入事件也能正常传递。
总结
- 问题根源:scrcpy 1.24 不兼容 Android 14 的系统 API。
- 解决方案:升级到 scrcpy 最新版本(≥3.3.4)。
- 验证结果:在 Firefly AIO-3588Q 板卡上测试,scrcpy 3.3.4 已能正常投屏和交互。
✅ 一句话总结 :
在 Android 14 上,旧版 scrcpy 会因系统 API 变更导致投屏报错,升级到 scrcpy 3.3.4 即可解决问题。