在这篇文章中,我们将介绍设置Android(同时支持Amazon Fire设备和商店发布)所需的步骤。
你必须始终使用Required SDKs FAQ中建议的特定版本,并且不要假设比我们列出的版本更新的工具会更好,因为使用比GameMaker支持的版本更新的SDK很可能会导致构建失败,而如果你遵循本指南,这些失败是可以轻松避免的。
在按照以下Android Studio的截图操作时,请确保你使用的是从另一个FAQ中获取的版本,而不是直接复制此处图片中显示的值。
概述
在您的PC或Mac上安装并运行GameMaker后,您可以使用目标管理器窗口为Android构建项目。该窗口通过点击主窗口右上角的“目标”按钮打开:
在目标平台中,您可以看到有两个输出选项:
- VM - 这将使用解释型代码构建您的游戏。
- YYC - 这将使用编译后的原生代码构建您的游戏。
VM选项将构建您的游戏,并在一个特殊的YoYo Runner中使用解释型代码运行。此目标的性能不如YYC优化,但编译速度更快,并且支持在调试模式下运行。而YYC目标则能显著提升性能,尤其是对于逻辑复杂的游戏,但大型项目可能需要较长的编译时间,并且无法使用调试器。
无论您选择哪种输出方式,在继续之前,您都需要在开发计算机上安装一些额外的构建工具……
安装 Android Studio
关于您需要安装的 Android Studio 版本,请参阅 Required SDKs FAQ - 不要直接安装最新版本!
要开始使用您的 Android/Amazon 设备进行开发,您需要下载并安装 Android Studio。点击安装程序后,系统会要求您选择组件:
AVD(安卓虚拟设备)支持是完全可选的,且会占用大约1GB的存储空间。因此,如果您确定不会使用模拟器,建议取消勾选此选项(我们不会为使用模拟器时遇到的问题提供技术支持,仅支持在真实设备上运行的问题)。
选择您希望安装的位置(默认位置即可),是否添加快捷方式取决于您的个人偏好。
等待安装程序完成,安装结束后 Android Studio 将自动启动。
设置您的 SDK 安装文件夹
如果您是 Android 开发的新用户,那么您首先会看到的是一个略显复杂的界面(您可能会在此界面上方看到一个弹窗,询问是否愿意向 Google 发送分析数据——这取决于您的选择):
在此界面点击 Next,接下来系统会询问您要安装哪些组件以及安装位置:
对于上面高亮的 “Android SDK Location” 路径值,Google 的路径名称可能会变得非常长,并可能导致 Windows 的路径长度限制(256 个字符)问题。因此,我们强烈建议将 SDK 安装到尽可能靠近驱动器根目录的位置,并且不要使用任何空格,以避免在构建项目时出现错误。对于 Mac 和 Ubuntu IDE 用户,我们仍然建议使用简短且易于记忆的路径,但重要性相对较低。
- Windows IDE 用户: 我们通常使用
C:\AndroidSDK\
作为安装路径,但您也可以选择将 SDK 安装到其他驱动器(如截图所示)。 - Mac 和 Ubuntu IDE 用户: 我们使用
~/AndroidSDK/
作为安装路径。
请注意,您不能直接通过文本字段编辑路径——您需要点击右侧的小文件夹按钮,然后导航到您希望的位置(如果需要,可以创建该文件夹)。
设置好较短的 SDK 安装路径后(如果是 PC),点击 Next,接受组件列表及其许可证,然后点击 Finish。
最后,当您选择的组件下载并安装完成后,Android Studio 将很快启动。
完成/更新您的 SDK 安装
当 Android Studio 启动时,可能会有一个更新通知等待处理。请忽略此更新提示,因为我们将在指南中逐步安装所需的包。
相反,请点击 SDK Manager 选项,开始安装我们所需的工具:
这将打开一个窗口,您可以在其中选择并安装所需的 SDK 平台。
在继续之前,请勾选 Hide Obsolete Packages(隐藏过时的包)和 Show Package Details(显示包详细信息)这两个复选框,因为您不需要下载 API 的所有内容来使其与 GameMaker 兼容。同样,稍后我们将选择特定的工具版本,这些版本可能不是列出的最新版本。
在 SDK Platforms 选项卡中,通常只需要安装 Required SDKs FAQ 中建议的一个 API 版本。但是,如果您的项目中使用了扩展,这些第三方 SDK 可能要求您稍后安装额外的包。
如上所述,请注意,对于每个您希望安装的 API,您只需要安装一个 “Android SDK Platform …” 部分,如下所示(以 Tiramisu 为例):
选择所需的 SDK 平台后,切换到 SDK Tools 选项卡,并确保您也在此处添加了合适的工具。
您可能会发现 Android Studio 的安装程序已经为您安装了最新的非 Beta 版 Android SDK Build Tools,因此您的安装界面可能如下所示:
不要安装带有任何 “-rc” 后缀的 Android 测试版(如上图中高亮显示的版本)。
同样,它可能已经安装了当前版本的 Android SDK Platform Tools:
您可能还希望移除模拟器工具,正如我们在安装程序中建议的那样(如果您在安装时取消勾选了 AVD 设置,那么这些工具会占用不必要的磁盘空间……):
接下来,如果您希望进行任何 Android YYC 构建,还需要安装 Android NDK。因此,找到 NDK (Side by side) 组,并再次选择与 Required SDKs FAQ 中建议的版本匹配的条目——例如,这里我们将下载 NDK 25 版本:
完成后,点击 SDK Manager 底部的 Apply 按钮,确认更改,然后等待下载过程完成。
现在,您已经准备好设置 GameMaker 以进行 Android 开发——您可以关闭 SDK Manager 和 Android Studio,因为在 GameMaker 中工作时不需要运行这些工具。
请注意(除了 NDK 安装外),如果您没有在 SDK Manager 中安装所有必需的内容,每当您下次在 GameMaker 中尝试进行 Android 构建时,Android 的工具会尝试通过下载缺失的部分来“修复您的安装”。然而,我们不建议您依赖此功能,并且这可能不适合您的防病毒/防火墙设置。
同样,请注意,默认情况下 Gradle 会假定/需要互联网连接,并在每次 GameMaker 项目构建开始时执行更新检查并下载任何未安装的必需组件。我们建议您保持此功能启用,但如果需要,您可以在 Android Studio 中禁用它(当然,如果您开始发现项目构建失败,在联系我们之前,您应该手动更新 Gradle 并下载任何缺失的组件,以确认是否解决了问题):https://developer.android.com/studio/intro/studio-config#offline
如果出现下载失败的错误,请尝试按照这篇文章进行手动下载:https://blog.youkuaiyun.com/weixin_38858037/article/details/114907925
设置 GameMaker 的首选项
现在回到 GameMaker,您需要在 Preferences 中设置 Platform Settings 部分:
Android SDK 位置
输入或选择您在 Android Studio 中安装 SDK 的路径。
假设您确实使用了我们之前推荐的路径作为 SDK 安装路径,那么它应该是:
- Windows:
C:\AndroidSDK\
- macOS:
/Users/[您的 macOS 用户名]/AndroidSDK/
如果您之前选择了不同的安装位置,现在希望更改以匹配我们的建议,或者您只是需要提醒,可以在 Android Studio 的 SDK Manager 界面中查看或修改。
Android NDK 位置
Android Studio 始终将 NDK 安装到 SDK 安装位置的子文件夹中,因此请使用文件选择按钮找到此文件夹。
假设您确实使用了我们推荐的路径,那么它应该是:
- Windows:
C:\AndroidSDK\ndk\[版本号]\
- macOS:
/Users/[您的 macOS 用户名]/AndroidSDK/ndk/[版本号]/
Java JDK 位置
Android Studio 自带 OpenJDK 版本,这是 Google 构建工具唯一支持的 JDK 版本,因此请使用文件选择按钮找到此文件夹。
您不需要单独安装 Oracle 的 JDK,因此请不要仅仅因为“最新版本”而去获取 Oracle Java。 此外,Oracle 几年前更改了 Java 的许可协议,您可能需要在商业应用开发中为其支付费用,因此最好避免使用它,并坚持使用 Google 提供的安装……
同样,假设您确实使用了 Android Studio 安装程序推荐的默认路径,您的 JDK 将安装到:
- Windows:
C:\Program Files\Android\Android Studio\jbr
- macOS:
/Applications/Android Studio.app/Contents/jbr/jdk/Contents/Home
旧版 SDK 用户: 在 Electric Eel 版本之前,上述路径中的 “jbr” 文件夹名为 “jre”。因此,如果您使用的是 Electric Eel 之前的任何 Android SDK 版本,请在此路径中输入 “jre” 而不是我们上面显示的内容。同时请注意,如果您已经有一个 “jre” 文件夹,因为您在旧版 Android Studio 安装基础上安装了新版本 SDK,并且在安装 Android Studio 时保留了其默认安装路径,那么您必须删除该 “jre” 文件夹(不仅仅是里面的内容——整个文件夹!),否则在稍后尝试在 GameMaker 中进行构建时,Electric Eel 将无法找到您的 Java 可执行文件。
生成 Keystore 文件
现在,您可以向下滚动并创建您的 Keystore 文件。这是一个用于为所有 Android 应用程序签名的文件,因此请正确填写所有详细信息,*然后备份此文件以及用户名和密码的截图或其他记录*!
我们建议您为您的组织创建一个单一的 keystore 文件,并在所有项目中使用此文件,而不是为每个项目生成单独的 keystore。
在创建新 keystore 文件时,您需要提供以下详细信息:
- 文件名 - 由 GameMaker 自动填充,显示 keystore 的位置(除非您要导入现有的 keystore 文件,否则无需填写此字段)。
- 密码 - 您希望用于 keystore 文件本身的密码,长度必须至少为六个字符。
- 别名 - 这是 keystore 的“用户”名称,可以与上面的名称字段不同。
- 别名密码 - 此密码需要与上面的密码相同,这是 Google 工具的要求。
其他所有字段都是可选的,GameMaker 不会使用它们,但如果您希望填写:
- 通用名称 - 通常是您的全名或其他标识符。
- 组织单位 - 您所在公司内的部门名称。
- 组织 - 您的公司名称。
- 位置 - 您所在的城市或城镇名称。
- 国家/地区 - 您所在国家/地区的两字母代码。
请注意,所有名称必须仅包含字母、数字和空格——不能包含其他“特殊”字符!
填写完此信息并确认无误后,点击标记为“生成 Keystore”的按钮,GameMaker 将创建必要的 keystore 文件。这可能需要一些时间,然后您应该看到密钥字段已自动填充。
您可以忽略有关 keystore 格式过时的任何警告,并且请勿使用外部工具“升级”您的 keystore。
现在,您可以点击 Apply/OK,设置完成。
导入现有的 Keystore
如果您已经有一个现有的 Keystore 文件,只需将 GameMaker 指向该文件,并按照首次生成时的详细信息填写上述必填字段。
这次不要点击 生成 Keystore 按钮,而是点击 显示密钥哈希 以确认一切正常,然后点击 Apply/OK。
Keystore 文件的规范确实允许您在单个 keystore 文件中包含多个用户(“别名”)。GameMaker 不支持以这种方式创建 keystore,但如果您导入的 keystore 中已经包含多个别名,则只需提供主密码和您希望使用的别名的详细信息。
设置您的 Android 设备
在目标管理器窗口中,您可以看到一个标记为 Devices 的部分,旁边有一个小的“铅笔”图标:
点击此图标将打开 Android 设备管理器,您可以在其中添加一个或多个 Android 设备,以便在运行和构建 Android 平台项目时使用。
为了让 GameMaker 检测到您的设备,必须首先使用 USB 数据线将其连接到 PC 或 Mac,并且必须启用 开发者模式和 USB 调试。在 Mac 上,您还需要安装 Android 文件传输应用。
设备连接后,点击 检测设备 应会自动检测到设备并将其添加到已连接设备列表中:
如果您在 GameMaker 检测设备时遇到问题,或遇到其他连接问题,请参阅 Android 故障排除 文章。
完成后,您可以点击 测试连接 按钮,如果 Android 设备可见并通过 USB 正确连接,则应显示“连接成功!”:
设置您的游戏选项
与其他一些目标平台不同,在测试游戏之前,您需要在 Game Options > Android 中设置一些内容,即初始的 构建设置:
GameMaker 允许您选择性地针对特定版本的 Android,这主要是由于 Android 操作系统在设备上的碎片化特性以及某些扩展需要不同的 SDK 或构建工具。对于一个“纯净”项目(即没有扩展或额外要求的项目),您只需在此部分顶部的下拉菜单中选择已安装的最新 API 级别即可,这是您在此处需要做的全部工作。
(请注意,此下拉菜单将显示所有 API,包括您在本指南中安装的最新版本,但如果您按照本指南的指示操作,您可能只安装了一两个 API,因此请谨慎选择。)
如果您需要自定义任何其他字段,请始终参考您在 Android Studio 中实际安装的内容,并从那里获取版本号。
- Build Tools 值:如果您选择了 API 30 或更高版本,您会看到此字段留空,因为 Google 已更改此设置,您只需指定 Compile SDK 值,Android SDK 会自动确定您需要的正确构建工具。如果您使用 API 30+ 进行编译,则在此处输入的任何版本都将被 Google 的工具忽略。如果您针对的是 API 低于 30 的 Android,则会为您设置合适的构建工具值。
- Compile SDK 版本是项目编译所针对的 API 版本。这意味着您可以使用该 API 版本中包含的 Android API 功能——例如,如果您尝试在游戏中使用 API 28 的功能,但仅将 Compile SDK 设置为 26,则会出现编译错误。请注意,如果您设置了较新的版本,通常仍然可以在较旧的 API 设备上运行应用程序。
- Target SDK 与应用程序的编译方式或您可以使用的 API 无关。Target SDK 表示您已在(包括)指定版本上测试了您的应用程序。这只是为了让 Android 操作系统了解应如何处理您的应用程序的操作系统功能。出于所有实际目的,大多数应用程序都会希望将 Target SDK 设置为 API 的最新发布版本(与 Compile SDK 设置使用的版本相同)。这将确保您的应用程序在最新的 Android 设备上尽可能正常运行。
- Minimum SDK 版本是运行您的项目所需的最低 API 级别。GameMaker 设置的默认值通常是可以的,但如果您添加了扩展,则它们可能需要更高的最低 API 级别,因此您需要在此处提高该值。
如果您只是测试项目,则无需在此处提供更多信息,因此您可以关闭游戏选项并继续。
在 Android 设备上测试
完成上述部分并准备好测试项目后,您可以打开目标管理器并选择要使用的 目标、输出 和 设备 选项:
然后,您可以点击 GameMaker IDE 中的“播放”按钮来编译项目并将其推送到您的测试设备。
请注意,第一次尝试测试 Android 游戏时,Google 的编译工具可能需要连接到互联网以下载额外的文件和工具,这可能会触发防火墙警报——如果发生这种情况,您应该允许连接,否则构建将失败。这是正常现象,如果您正确遵循了上述指南,这种情况只会在首次使用这些 SDK 值构建时发生。
请注意,Gradle(相关的 Google 工具)在您进行 Android 构建时,如果当时在线,会偶尔检查其自身的更新。
如果一切顺利,您应该很快就能看到您的游戏项目在目标设备上运行!