为Android平台自定义编译

Godot提供了使用自定义构建Android模板的选项。与使用Godot附带的已预先构建好的模板不同,而是将实际的安卓Java项目安装到项目文件夹中。然后Godot将构建它,并在每次导出项目时将其作为导出模板使用。

出于某些原因,您可能想要这样做:

  • 在构建项目之前对其进行修改。

  • 添加与您的项目一起构建的外部SDK。

配置自定义构建或多或少是一个简单的过程,但是要适应Android SDK的工作方式可能需要一段时间。

将提供尽可能详细的说明来完成这一过程。

设置自定义构建环境

进入项目菜单,安装 自定义构建 模板:

../../../_images/custom_build_install_template.png

确保已下载导出模板。如果没有,此菜单将帮助您下载它们。

将在 res://android/build 下创建一个基于Gradle的Android项目,不需要编辑这些文件,除非你想 创建你自己的add-ons ,或者真的需要修改项目。

安装Android SDK(命令行版本)

以上就是使用命令行安装Android SDK的步骤,这种方法的优点是简单、下载和安装尺寸小。不过可能比较有挑战性。Android Studio的方法比较简单,但需要下载安装Android Studio(可能需要超过1GB的存储空间)。

安装JDK

安卓SDK不附带Java,因此需要手动安装。需要安装一个Java SDK( 只是运行时或JRE)。需要安装 OpenJDK 8 ,太新的版本无法使用。

Windows上, 在安装界面的 *Custom Setup*确保你启用了 "Set JAVA_HOME variable"。这之后你必须重新启动Godot,不然Godot将无法找到``JAVA_HOME`` 变量。

下载命令行工具

前往`Android Studio 下载页 <https://developer.android.com/studio/#command-tools>`_。为了节省磁盘空间,你应该不想要完整的IDE,所以不要下载那个。

注解

如果你确实想要Android Studio,请查看后面关于在Android Studio中操作的说明。

在该页面上查看 仅命令行工具 部分。目前,它们被列在 下载选项 下。向下滚动一点,直到你看到它们,然后下载适用于您的平台的ZIP文件。

这可能有点令人困惑,请务必认真遵循以下说明:

在你想要的任何地方,创建一个名为 android-sdk 的文件夹(**必须**是个空目录)。在Windows平台上,用下面这个路径就可以了:

C:\users\<yourusername>\android-sdk

在``android-sdk``文件夹中创建一个 cmdline-tools 的空文件夹。然后将 Android SDK 压缩文件解压到``android-sdk/cmdline-tools`` 文件夹。

注解

如果是Windows平台,禁止使用默认的Widnows解压工具(比如 Windows Explorer)解压ZIP压缩包。必须使用其他工具,比如 7zip, WinRAR 或者 Powershell 的``Expand-Archive`` 命令。如果使用默认的解压工具解压压缩包,文件将不会被正确解压,之后也会运行错误!

cmdline-tools``文件夹现在应该包含解压之后的文件夹 ``tools。最后,把``tools`` 文件夹重命名为``latest``。

你的最终目录结构应该是这样的 :

android-sdk/
android-sdk/cmdline-tools/
android-sdk/cmdline-tools/latest
android-sdk/cmdline-tools/latest/allTheOtherFiles

为了让sdkmanager(在bin文件夹下)能正常工作,需要用这种方式设置目录结构。

接受许可证

谷歌要求你接受对应的许可证,才可以使用Android SDK工具。

要做到这一点,sdkmanager 必须通过命令行执行,并提供一个特殊参数。导航到SDK文件夹内的 tools/bin 目录(为Windows用户提供了说明,因为Linux和macOS用户应该了解命令行导航的工作方式):

../../../_images/custom_build_bin_folder.png

然后打开命令行窗口:

../../../_images/custom_build_open_shell.png

在那里,运行 sdkmanager --licenses:

../../../_images/custom_build_sdkmanager.png

这将要求你接受几个许可证,只要在每个许可证上写上 y ,然后按 Enter ,直到完成。

之后,安装平台工具(安装 adb 需要这个):

../../../_images/custom_build_platform_tools.png

如果收到一条这样的报错 Warning: Could not create settings,尝试 ./sdkmanager --sdk_root=../../ --licenses 或``./sdkmanager --sdk_root=../../ platform-tools``。这些命令必须在``/tools/bin/文件夹里执行,因为 ``--sdk_root 路径是相对的。

生成密钥库

一旦安装了 平台工具,最后一步是生成调试密钥存储库(这是构建所需要的)。通过这样写,向上返回两个文件夹:

cd ..\..\..

(或者在 android-sdk 文件夹中打开一个新的Shell)。

然后你需要输入以下一行(这应该是开箱即用的,如果你没有在Windows上设置 JAVA_HOME 变量,下面有进一步的说明):

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

在Windows上,如果你没有设置 JAVA_HOME 变量,应该提供Java的完整路径。如果使用PowerShell,需要在行首添加 & ;普通的 cmd.exe 控制台不需要。

为了更清楚地说明这一点,这里有一行在PowerShell上运行的代码(在 keytool.exe 之前添加 & 和完整的Java路径)。同样,请记住,你需要安装Java:

../../../_images/custom_build_command_line.png

(如果图片太小,请右击并在新标签页中打开图片)

设置Godot

转到 编辑器设置 并在 导出->安卓 中设置几个字段。确保它们看起来像下面这样:

../../../_images/custom_build_editor_settings.png

(如果图片太小,请右击并在新标签页中打开图片)

可以看到,大多数路径都在你最初创建的 android-sdk 文件夹内,或者在Java安装中。对于Linux和macOS用户, jarsigner 通常位于 /usr/bin 中。

有了这个,您应该已经准备就绪。

安装安卓SDK(Android Studio)

如果你刚刚通过命令行工具安装完SDK,可以完全跳过本节。Android Studio路径更简单,但它占用的磁盘空间更大。如果你打算开发Godot for Android(修改Java源代码),或者你打算开发附加组件,它也很有用。

下载并安装Android Studio

下载最新版本的Android Studio。安装时,请注意 android-sdk 目录创建的位置。

../../../_images/custom_build_install_android_studio1.png

注解

这很有趣,默认情况下,它建议的路径包含空格(您会为此抱怨不已)。所以它必须改变。

无论如何,最好在用户文件夹中选择不同的路径。推荐的方法通常是:

C:\Users\<yourusername>\Documents\android-sdk

用实际用户名替换 yourusername。一旦正确,在同一屏幕上从以上列表中选择:

  • Android SDK

  • Android SDK 平台工具

其余都不需要,因为构建系统会自动获取它们。选定它们后,继续安装。

生成密钥库

进入上一步安装 android-sdk 的文件夹,使用文件资源管理器,在那里打开一个命令行工具:

../../../_images/custom_build_open_shell.png

实际要输入的命令行如下。在Linux和macOS上,它应该是开箱即用的,但在Windows上,它需要更多的细节(请继续向后阅读)。

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

在Windows上,应该提供Java的完整路径(如果使用PowerShell,需要在行首添加 & ,普通的 cmd.exe 控制台不需要)。别担心,至少在Windows上使用Android Studio,Java是捆绑在一起的。

为了更清楚地说明这一点,这里是PowerShell上工作的一行的屏幕截图(通过添加 & 和完整的Java路径到 keytool.exe ;如果你使用 cmd.exe ,则删除 & )。它使用的是Android Studio自带的Java版本的路径:

../../../_images/custom_build_command_line2.png

(如果图片太小,请右击并在新标签页中打开图片)

设置Godot

转到 编辑器设置 并在 导出->安卓 中设置几个字段。确保它们看起来像下面这样:

../../../_images/custom_build_editor_settings2.png

(如果图片太小,请右击并在新标签页中打开图片)

可以看到,大多数路径都在你最初创建的 android-sdk 文件夹内,或者在Java安装中。对于Linux和macOS用户, jarsigner 通常位于 /usr/bin 中。

有了这个,您应该已经准备就绪。

启用自定义构建和导出

Project > Export [项目>导出]对话框中设置Android项目时,需要启用 Custom Build [自定义构建]:

../../../_images/custom_build_enable.png

从现在开始,尝试导出项目或一键部署会调用 Gradle 构建系统来生成新的模板(每次都会出现这个窗口):

../../../_images/custom_build_gradle.png

生成的模板将在以后自动使用,因此不需要进一步的配置。