Filament for Android 编译搭建(基于Ubuntu20.04系统)

一、Filament 源代码下载

github下载地址:https://github.com/google/filament

git clone https://github.com/google/filament.git

如我本地:

mkdir google-filament

cd google-filament

git clone https://github.com/google/filament.git

二、Filament for Android 编译

参考官方资料:https://github.com/google/filament/blob/main/BUILDING.md

需要的工具:

Prerequisites

To build Filament, you must first install the following tools:

  • CMake 3.19 (or more recent)
  • clang 7.0 (or more recent)
  • ninja 1.10 (or more recent)

Additional dependencies may be required for your operating system. Please refer to the appropriate section below.

To build Filament for Android you must also install the following:

  • Android Studio Arctic Fox or more recent
  • Android SDK
  • Android NDK 25.1 or higher

1、 安装cmake

$sudo apt install cmake,我使用这边命令安装发现版本太低(cmake version 3.16.3

不推荐上面命令

推荐使用sudo snap install cmake

如果本地没有安装过cmake,输入cmake命令提示:

$ cmake

Command 'cmake' not found, but can be installed with:

sudo snap install cmake  # version 3.25.1, or

sudo apt  install cmake  # version 3.16.3-1ubuntu1.20.04.1

See 'snap info cmake' for additional versions.

$ sudo snap install cmake

错误:This revision of snap "cmake" was published using classic confinement and thus may perform

         arbitrary system changes outside of the security sandbox that snaps are usually confined

         to, which may put your system at risk.

         If you understand and want to proceed repeat the command including --classic.

按照提示,使用如下命令安装cmake version 3.25.1

$ sudo snap install cmake --classic

如果是3.19以下版本,使用下面方法更新到最新版本

打开cmake下载的官网:https://cmake.org/files/

下载最新版本

sudo bash cmake-3.25.1-linux-x86_64.sh --skip-licence --prefix=/usr

在弹出来的提示中,输入y/n

# 安装过程中遇到:

# 第一个选择时,输入y!!!

Do you accept the license? [yn]:

# 输入 y

# 第二个选择时,输入n!!!

By default the CMake will be installed in:

  "/usr/cmake-3.25.1-linux-x86_64"

Do you want to include the subdirectory cmake-3.25.1-linux-x86_64?

Saying no will install in: "/usr" [Yn]:

# 输入 n

这时会自动安装了

2、安装clang

我是直接安装clang-10

Ubuntu 20.04 ,sudo apt install clang 命令默认就是clang-10

$sudo apt-get install clang-10

# 安装 AST.h 等头文件

$sudo apt-get install libclang-10-dev

$sudo apt-get install libglu1-mesa-dev

$sudo apt-get install libc++-10-dev

$sudo apt-get install libc++abi-10-dev

$sudo apt-get install libxi-dev

配置为默认的clang、clang++、cc、c++

$sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-10 100

$sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-10 100

$sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100

$sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100

$sudo apt-get install libxxf86vm-dev

$sudo apt-get install x11proto-xf86vidmode-dev

3、安装ninja

sudo apt-get install ninja-build

4、安装Android Studio

google android developers官网下载最新的:https://developer.android.com/studio

下载最新Android Studio的后(当前最新版本为:android-studio-2021.3.1.17-linux.tar.gz)

直接解压即可

我本地是:

mkdir ~/Android

cp android-studio-2021.3.1.17-linux.tar.gz ~/Android

cd  ~/Android

tar -zxf android-studio-2021.3.1.17-linux.tar.gz

运行直接到android-studio/bin目录,执行./studio.sh

注意:如果之前有安装过老的版本Android Studio,在导入filament/android时可能会提示版本或插件不兼容问题

我本地就遇到了这个问题

The project is using an incompatible version (AGP 7.3.0-alpha07) of the Android Gradle plugin. Latest supported version is AGP 7.2.1

解决方案就是更新Android Studio版本和插件

5、Android Studio安装cmake和NDK

打开Android studio -> Tools -> SDK Manager

首先建议安装最新的SDK ,注意选择自己的安装路径,记录号安装路径,后面配置环境变量需要用到

 

 到SDK目录看一下安装的版本:如我本地安装目录是/home/liuzhengliang/Android/Sdk/

6、配置环境变量

vim ~/.bashrc

添加, 路径换成自己的sdk目录

export PATH=$PATH:/home/liuzhengliang/Android/Sdk/cmake/3.22.1/bin

export ANDROID_NDK="/home/liuzhengliang/Android/ndk/25.1.8937393"

export ANDROID_SDK="/home/liuzhengliang/Android/Sdk"

export PATH=$PATH:$ANDROID_NDK

export ANDROID_HOME=$ANDROID_SDK

重启机器,或者在编译filament的终端执行source ~/.bashrc

三、Filament 在Ubuntu系统上编译

./build.sh -p android release

编译成功后会在out生成如下所示目录

进入到 out/cmake-release 目录下: 

ninja install

四、Android studio运行 filament samples

Android studio 直接open filament下的android目录

方法:打开Android studio -> File -> Open

需要debug的手机链接到PC电脑(记得开启adb debug)

  1. 选择需要运行的samples
  2. 链接到手机adb
  3. 点击Run编译并运行

如samples:sample-gltf-viewer的效果:

五、其他问题记录

1. 我本地编译报遇到过:'X11/extensions/xf86vmode.h' file not found

/home/liuzhengliang/22-code/filament/filament/third_party/libsdl2/src/video/x11/SDL_x11video.h:56:10: fatal error: 'X11/extensions/xf86vmode.h' file not found
#include <X11/extensions/xf86vmode.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~

解决方法:

sudo apt-get install libxxf86vm-dev
sudo apt-get install x11proto-xf86vidmode-dev

2. ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

解决方法:

安装openjdk

sudo apt-get install openjdk-11-jdk

3. ccache: error: SLOPPINESS: unknown sloppiness: "locale"

ccache: error: SLOPPINESS: unknown sloppiness: "locale"

解决方法:

编译时遇到ccache报错:

解决方案:卸载本地的ccache 或者更新到最新ccache版本

4. fatal error: 'type_traits' file not found #include <type_traits>

报错:/home/liqinyan/data/source_code/3d_filament_code/google-filament/filament/libs/math/include/math/compiler.h:20:10: fatal error: 'type_traits' file not found #include <type_traits> ^~~~~~~~~~~~~ 1 error generated. ninja: build stopped: subcommand failed.

解决方法:

缺少c++相关库,重新执行下面的命令
$sudo apt-get install libglu1-mesa-dev
$sudo apt-get install libc++-10-dev
$sudo apt-get install libc++abi-10-dev
$sudo apt-get install libxi-dev

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
编译FilamentAndroid版本程序需要以下步骤: 1. 下载并安装Android Studio:访问Android开发者网站(developer.android.com),下载并安装最新版本的Android Studio。这是一个集成开发环境(IDE),提供了丰富的工具和库编译Android应用程序。 2. 克隆Filament仓库:在命令行或Git Bash中,使用命令`git clone https://github.com/google/filament.git`克隆Filament的Git仓库到本地。 3. 打开Android Studio并导入项目:启动Android Studio,点击“File”菜单,选择“Open”选项,然后导航到刚刚克隆的Filament目录并选择“build.gradle”文件。点击“OK”来导入项目。 4. 配置编译选项:等待Android Studio完成导入过程后,点击“File”菜单,选择“Project Structure”选项。在弹出的对话框中,选择“SDK Location”并确认已正确设置Android SDK的路径。 5. 构建项目:在Android Studio的工具栏上找到“Sync Project with Gradle Files”的按钮,并点击它来同步Gradle构造文件。然后再点击工具栏上的“Build”按钮,选择“Build Bundle(s) / APK(s)”选项。这将编译并构建Filament应用程序。 6. 安装和运行:编译成功后,在构建输出目录中找到生成的APK文件。将手机通过USB连接到计算机,并在开发者选项中启用USB调试模式。使用ADB(Android Debug Bridge)命令,将APK文件安装到手机上。运行应用程序并验证其正常工作。 以上是在Windows系统编译FilamentAndroid版本程序的基本步骤。尽管这里提供了一个大致的指南,但具体的操作可能会因为系统配置和软件版本的不同而有所不同。为了更好地理解和完成这个过程,建议查阅Filament的官方文档和与Android开发相关的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuzl_2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值