IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> ubuntu18.04 使用scrcpy将安卓手机投屏到电脑 -> 正文阅读

[Java知识库]ubuntu18.04 使用scrcpy将安卓手机投屏到电脑

最近看了关于手机投屏的功能,本来打算跑个miracast的demo玩玩,奈何电脑网卡不支持wifi direct,网上搜索发现有个开源的库scrcpy可以实现有线投屏,scrcpy项目github地址
安装方式可以选择apt的方式,也可以选择源码编译。我选择了源码编译,其中遇到了不少问题,现在记录一下。

1 编译安装步骤

1 下载源码

git clone https://github.com/Genymobile/scrcpy
cd scrcpy
./install_release.sh

2 安装依赖

该项目依赖ffmpeg与SDL2,安装方法可以参考其他博客,该项目的github里也有相关说明。

3 meson build

执行meson build脚步,需要提前安装meson。

meson x --buildtype release --strip -Db_lto=true

执行这一步的时候出现了Dependency "libavformat"not found的错误,出错的地方是app/meson.build文件,是因为编译是找不到ffmpeg的库。

在这里插入图片描述
修改app/meson.build文件中添加ffmpeg的地方,将依赖路径改为本机ffmpeg的安装地址,位置大概在47行。
修改前:

if not get_option('crossbuild_windows')

    # native build
    ffmpeg_dir = '/usr/local/ffmpeg/lib'
    SDL_dir = '/usr/include/SDL/lib'
    dependencies = [
        dependency('libavformat'),
        dependency('libavcodec'),
        dependency('libavutil'),
        dependency('sdl2'),
    ]

    if v4l2_support
        dependencies += dependency('libavdevice')
    endif

else

修改后:

if not get_option('crossbuild_windows')

    # native build
    ffmpeg_dir = '/usr/local/ffmpeg/lib'
    SDL_dir = '/usr/include/SDL/lib'
    dependencies = [
        #dependency('libavformat'),
        #dependency('libavcodec'),
        #dependency('libavutil'),
        #dependency('sdl2'),
		cc.find_library('libavformat', dirs: ffmpeg_dir),
		cc.find_library('libavcodec', dirs: ffmpeg_dir),
		cc.find_library('libavutil', dirs: ffmpeg_dir),
		cc.find_library('SDL2', dirs: SDL_dir),
    ]

    if v4l2_support
        #dependencies += dependency('libavdevice')
		dependencies += [cc.find_library('libavdevice', dirs: ffmpeg_dir)]
    endif

else

修改后执行又报了libavformat头文件找不到的错误。
在这里插入图片描述同样修改app/meson.build文件,位置大约在148行,修改后:

src_dir = [
			include_directories('/usr/local/ffmpeg/include/'),
			include_directories('src')
]

这下meson build就可以执行过去了。

4 编译

执行以下命令:

ninja -Cx

njnja 相当于 make, 所以上面会编译代码。编译后出现了scrcpy-server编译不过的问题。
在这里插入图片描述
原因是没有安装android SDK,安装方法参考这篇博客
安装后执行:

export ANDROID_SDK_ROOT=/usr/local/android-sdk/android-sdk-linux/

需要替换为自己的SDK安装路径。
安装后执行ninja -Cx仍出现Failed to install the following Android SDK packages as some licences have not been accepted.错误。
在这里插入图片描述解决方法:

android list sdk --all
android update sdk -u --all --filter 1,2,3,5,11,12,22,23,24,25,26,27,28,29,88,89
android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository

cd 到android SDK安装目录

/android-sdk-linux/tools/bin

执行:

sudo ./sdkmanager --update

有可能因JDK版本过高而出现Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema错误。

在这里插入图片描述我的电脑里默认安装了java11,查看版本方式:

java -version

解决方案,安装JDK8,将java默认版本设置为8。
安装JDK8:

sudo apt-get update
sudo apt-get install openjdk-8-jdk

切换默认JDK:

sudo update-alternatives --config java

输出对应序号即可切换。
至此编译遇到的所有问题得以解决,顺利编译成功。
在这里插入图片描述

2 执行效果

编译好后用usb连上手机,打开usb调试功能,注意要是安卓手机才可以,执行

./run x

效果如下:
在这里插入图片描述效果挺不错,而且还可以在电脑上用鼠标操作手机,很强大,具体一些好玩的命令参考项目github网站,后期打算看一看项目源码。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 16:13:08  更:2021-07-25 16:13:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 -2025/3/4 2:14:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码