linuxjdk安装配置教程交流(Windows11子系统Ubuntu)

介绍

编译so库源码,在Linux环境下要比windows环境下方便很多。出现问题的几率也少。

如果你不知道如何安装子系统,可以参考我这篇文章。Windows 11 开启 WSL2 运行Linux操作系统-Ubuntu (zinyan.com)

而在采用Linux环境进行编译任何项目的时候,都会需要配置各种开发环境才行。

本篇就是记录我的配置过程,希望能够给大家一个参考。主要是依靠apt命令进行的安装与更新。

sudo apt upgrade :更新全部安装的软件包。

sudo apt update : 查看可更新的包,同时它也进行了源链接地址的刷新。

1.安装环境

安装前,建议大家修改apt的源,改为国内镜像源。下载速度将会得到飞速提高。

切换方法可以参考:Ubuntu apt下载源改为阿里云镜像 (zinyan.com)

2. 安装 Git,make,yasm
  • Git:用来从github上拉取项目代码。
  • make:用来进行makefile编译的工具。
  • yasm:用来进行汇编代码编译。FFmpeg的编译需要这个库来编译x86和amd64指令。支持跨平台的库。

zinyan@LAPTOP-141OG4MA:~$ sudo apt-get install git make yasm

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(1)

例如我的git 已经安装了。后面安装了make和yasm。

2.1 apt-cache policy xxx 检测是否安装

安装完毕后可以通过命令查询是否安装,例如:apt-cache policy git 查询git是否安装

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(2)

还有相同的 apt-cache policy yasm,apt-cache policy make。

如果没有安装的话,就会返回 :Unable to locate package xxxx。

3. 安装 jdk,ndk,sdk
  • jdk: java 的jdk环境。毕竟ijkplayer部分代码是依赖java的。
  • ndk: 编译Android so库需要的环境。
  • sdk:Android SDK 环境。编译Android 库所需要的环境。

这三个环境,你明白了才能进行安装。

3.1 安装jdk

例如,我们打算安装java jdk-8 版本。那么可以通过apt-cache search jdk-8 查询一下当前源仓库中的安装包。

我们如果想安装jdk 11 那么: apt-cache search jdk-11 也可以查询一下。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(3)

我们根据左侧的名称,进行下载指定的jdk进行安装。

zinyan@LAPTOP-141OG4MA:~$ sudo apt-get install openjdk-8-jdk

效果图如下:

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(4)

或者我们通过 java -version 也可以看到我们的jdk 版本等信息。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(5)

使用apt安装的方式可以不用我们主动配置环境变量。如果你采用手动下载并解压等操作。需要配置环境变量告诉系统你的jdk是在哪个地方。

3.2 安装ndk

搜索ndk 得到google-android-ndk-installer 安装库。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(6)

那么我们就安装该库: sudo apt-get install google-android-ndk-installer

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(7)

然后会出现下面的界面。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(8)

然后让我们选择三个镜像下载地址:分别是google 官网地址:dl.google.com, 微软的镜像地址, qq 。通常情况下,建议大家选择第一个。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(9)

然后开始进行安装。我安装的版本是: https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip 这个文件的大小为655MB的压缩包。

如果不想用这种模式的话,我们也可以主动 直接通过wget命令 HTTP地址进行安装。

官网的NDK下载链接:NDK 下载 | Android NDK | Android Developers (google.cn)

我开始选择了微软的镜像地址,结果一直连接超时 没办法,只能杀进程。重新安装google-android-ndk-installer 并选择了dl.google.com

安装完毕后,通过ndk-build -v指令检测。(该指令需要ndk路径已经配置到环境变量之中了)

如果正常,就会出现版本信息等信息。如果不会就会出现:ndk-build: command not found。

说明ndk 的路径并没有被配置上去。根据安装逻辑最后输出的结果

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(10)

我在usr/lib 文件夹中找到了android-ndk文件。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(11)

说明ndk已经下载并解压成功了。我们主动配置一下环境变量就可以了。

zinyan@LAPTOP-141OG4MA:~$ sudo vim /etc/profile

在打开的profile文件中的最后添加下:

export NDK_HOME=/var/lib/android-ndk //此处为你的ndk安装路径 export PATH=$PATH:$NDK_HOME

效果图如下:

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(12)

然后保存文档,并关闭vim编辑模式。

然后为了让配置生效,我们需要 执行:source /etc/profile 然后该配置就生效了

我们再通过: ndk-build -v 就能看到ndk的相关信息了。效果如下图。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(13)

source /etc/profile 只会在当前窗口中生效。你如果启动了多个ubuntu窗口,那么其他窗口可能ndk-build -v 命令还是不能生效的。

你如果要都生效,需要reboot 重启整个系统才能生效。

3.3 安装 sdk

ndk安装完毕后,下一步就是安装sdk了Android SDK。简单的安装方法就是通过安装Android Studio 实现安装。而Linux版本Android Studio 可以在Android 官网中查询到最新的版本信息。

Download Android Studio and SDK tools | Android Developers (google.cn)

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(14)

而我们当前只是需要sdk ,并不需要Android Studio。那么我们可以继续滑动页面得到sdk工具的下载链接。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(15)

sudo wget https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip?hl=zh_cn

进行下载Android SDK。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(16)

文件大小约114M左右。然后我们可以通过mv命令对下载的文件夹对象进行重命名。

sudo mv commandlinetools-linux-8092744_latest.zip\?hl\=zh_cn androidtoolsss

例如我将下载的文件命名为了 androidtoolsss。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(17)

使用 sudo jar xvf androidtoolsss 进行解压缩。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(18)

你就将得到cmdline-tools文件夹了,里面有android SDK 库的管理工具。

如果你不给命令添加sudo,可能会出现下面的错误:

java.io.IOException: cmdline-tools/bin : could not create directory at sun.tools.jar.Main.extractFile(Main.java:1064) at sun.tools.jar.Main.extract(Main.java:981) at sun.tools.jar.Main.run(Main.java:311) at sun.tools.jar.Main.main(Main.java:1288)

那么大概率是因为你没有权限在该文件目录下创建文件夹权限。

我们解压完毕后,如果要清理掉压缩包文件对象。可以使用 :sudo rm -f xxx 删除该文件

3.3.1 调整目录结构

我们下载解压的目录结构为cmdline-tools/bin 。

而实际目录结构需要改为:cmdline-tools/tools/bin

也就是说将cmdline-tools目录下的全部内容移动到tools文件夹里面去。效果图如下:

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(19)

3.3.2 配置环境变量

参考ndk的配置方式,将sdk路径配置到/etc/profile 之中。

export ANDROID_SDK=/usr/lib/cmdline-tools export PATH=${PATH}:$ANDROID_SDK/tools;$ANDROID_SDK/platform-tools

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(20)

为了让配置生效,我们需要 执行:source /etc/profile 然后该配置就生效了。

下面开始启动sdkmanager 工具进行下载操作。

我们在Linux中启动的所有指令都要添加个sh才能操作,否则提示sdkmanager找不到。

例如:zinyan@LAPTOP-141OG4MA:/usr/lib/cmdline-tools/tools/bin# sh sdkmanager --list 才会有下面的命令输出结果

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(21)

更多的关于sdkManager 的指令可以参考:sdkmanager | Android 开发者 | Android Developers (google.cn)

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(22)

到这里所有的环境配置就结束了。

按照上面的方法下载后,我们的platform存储在了/usr/lib目录下。如果sdk各种插件下载完毕后,都放在该目录下就有点混乱了。

可以在下载路径后面添加指定的存储路径。

示例:

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(23)

然后下载的platform-tools就在我们指定的文件目录下了。

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(24)

我们如果要卸载不用在意存储路径可以直接卸载:

root@LAPTOP-141OG4MA:/usr/lib/cmdline-tools/tools/bin# sh sdkmanager --uninstall "platform-tools"

linuxjdk安装配置教程交流(Windows11子系统Ubuntu)(25)

到这里,算是将整个环境都给配置好了。

配置完毕后,我们可以通过adb 等指令检测sdk是否安装完毕。

其他

如果你安装过程中出现了一些问题,以下指令可能会给你一点帮助吧。

ps -aux //列出所有的进程 sudo kill [pid] //删除指定的pid 的进程 sudo apt-get remove [package] --purge //删除包,包括配置文件等 sudo apt-get install [package] --reinstall //重新安装包 sudo apt-get -f install //修复安装 source /etc/profile //让配置到当前窗口生效,(重启后全部窗口都生效)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页