swift 发布于 2023年06月08日
Cocos Creator 算得上是国内团队开发的一个比较不错的游戏开发框架。 前段时间大火的 “羊了个羊” 就是用这个引擎开发的。
这次还是继续说一下 Cocos Creator 相关话题,关注这个号的朋友大多是做 app 开发的,我知道对这个感兴趣的同学可能不是很多,但因为最近做这方面的事情比较多,写这个内容就容易准备一些。 而且如果你正好是在用 Cocos Creator 开发相关产品,这里的内容肯定能帮你少走不少弯路。
发布到 Android 平台和其他很多游戏框架一样,Cocos Creator 同样支持发布到多个平台,比如微信小游戏, iOS, Android 等等。 这次和大家聊的就是如何将 Cocos Creator 开发的项目发布到 Android 平台,最终生成可安装的 apk 包。
虽然官方文档中有相关的内容,但是信息比较过时,并且一些重要的细节也没有提及,比如如何更改生成 apk 的图标,桌面名称等。
这篇内容使用的是 Cocos Creator 3.7.1, 因为这个引擎随着版本更新经常性会有大的变动,所以这里把版本号标注好。
首先第一步,我们要为 android 创建一个 Build 配置, 打开 Project -> Build:
然后点击左上角的 "New Build Task":
这时候,你就会看到这样一个配置界面:
下面是每个选项的含义:
- Name: 选项里面我们要填写这个 Build 的名称,主意这个不是最终生成的桌面名称,只是在 Cocos Creator 里面用于表示当前这个 Build 配置的。
- Platform: 这个 Build 要构建到的平台,因为我们这里聊的是发布到 Android, 所以这里自然选择 Android。
- Build Path: 这个是这个 Build 最终产出的内容存放位置。
篇幅问题,其他的选项不多介绍了, 一般保留默认值就可以,并且官方文档对每个选项已经有解释了。
在这个通用配置区域,我们只需要确定 Name, 和 Platform, 并且按照 Build Path 中指定的位置找到我们最终的构建产物。
到这里还没结束, 如果我们把这个页面往下拉,还会看到更多的配置选项:
这里 Native 中的 Encrypt JS,Native Engine, Job System 我们一般不需要改动,我们主要说一下 Android 选项中的配置:
- Enable Swappy: 官方文档的解释说是一种平滑帧率模式,至于怎么个平滑,文档中给出了一个 Android 官方文档的地址,有兴趣可以去了解, 我这里暂时没有打开。 (https://source.android.com/docs/core/graphics/frame-pacing)[https://source.android.com/docs/core/graphics/frame-pacing]。
- Render Backend:关于渲染模式的选择,一般保留默认就好。
- Game Package Name:产品的包名,com.xxx.xxx 这种形式,发布 android 产品必须的标识。
- Target API Level:目标 API 级别,这里我选择的是 31.
- APP ABI:发布包支持的硬件架构。
- Use Debug Keystore: 如果你是要正式发布的话,这个选项要取消掉,然后下面4个,Keystore Path,Keystore Password,Keystore Alias,Keystore Alias Password 就会显示出来,就是我们发布 Android 应用所需要的签名文件,找到你自己的,填写进去即可。
- Screen Orientation: 这个默认值是横屏,如果你是竖屏游戏,记得改一下这个配置。
- Google Play Instant 和 Generate App Bundle: 这两个都和发布 Google Play 相关,根据你自己的需求选择吧,如果你需要,就打开。
这里要重点说的一个事情就是,Target API Level 这个选项,是需要我们设置好 Android SDK 路径,才能看到 Target API Level 的列表,我们点击旁边的设置按钮就可以打开设置界面:
这里就是我遇到的第一个坑,官方文档上只说了设置 SDK,并没有说设置到哪个路径级别,最开始我都设置到了最顶层目录,结果 Build 不停的报错,也是经过一番搜索找到的正确的路径。
如果你是 macOS 系统,并且通过 Android Studio 来管理 SDK, 那么你的 Android SDK 文件位置是在这里: /Users/xxx/Library/Android/sdk
这里的 xxx 是你自己的用户名。
其他系统比如 Windows 的话,你可以自行到 Android Studio 的 SDK 界面中找到它所在的位置。
我们需要设置两个路径, Android SDK 和 Android NDK 。
Android SDK 看下面这张图就比较直观,我们需要在 Cocos Creator 中设置到 sdk 这个目录的完整 path:
注意,当前用户目录中的 Library 是个隐藏文件,我们直接用 Finder 可能会找不到,最直接的方法是通过命令行:
这个命令就是用 Finder 打开当前用户目录中的 Library 文件夹。
Android NDK 的路径可以参考这张图:
要设置到 NDK 具体版本号这个目录级别。完整的路径大家也可以参考上面配置界面的截图。
路径问题说完了,那么另外一个问题来了,就是可能很多朋友电脑上并没有安装 NDK,那么我们就需要打开 Android Studio 去安装,打开 Setting,然后在左边找到 Android SDK 选项,点进去之后,右边找到 SDK Tools 选项卡,在下面列表中找到 NDK 这一栏,选择相应的版本, 我这里选择的是 18.1, 之所以选这个版本,是因为我之前在一篇文章中看到 cocos creator 不支持过高版本的 NDK,我也懒得去试了,就按照他说的选择一个低版本,如果大家用过高版本的 NDK 也欢迎反馈:
如果你连 Android SDK 也没有安装的话, 可以到这里 SDK Platforms 选项卡,安装 Adnroid SDK。
第二坑,JDK 版本问题本以为路径设置对了, SDK 也选择完成了,就应该可以正常 Build 了。 结果又报了另外一个错误,说是本机需要配置 JDK 环境。 我去命令行输入了一下 javac
, 结果确实是没安装。
接下来就去 Oracle 官网安装了最新版本的 JDK, 然后又出错了, 查看错误日志大概是这样:
又搜索了一番,才搞明白,是我安装的 JDK 版本过高了, 我安装的是 Java 17, Cocos Creator 能正常构建的是 Java 8 版本。这里顺便说一下,我们如果遇到构建失败的情况,可以点击这个按钮查看详细的失败日志,这样更便于我们解决问题:
我重新去 Oracle 官网下载了 Java 8 的版本, 重新安装了一下。 然后又报错了:
* What went wrong:
Execution failed for task ': libcocos2dx: compileDebugJavawithJavac'.
> Could not find tools.jar. Please check that /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/
很明显,是找不到 tools.jar
这个文件,我们还需要把 JDK 目录中的 tools.jar
复制到报错信息中所提示的 plugin 目录中。
以我的系统环境为例,这个 tools.jar
在这个位置 /Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home/lib/tools.jar
, 更直观点,可以看这个图片:
然后我们找到报错信息中说的这个位置 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
:
然后右键点击它,选择 "Show Package Contents",把我们刚才找到的 tools.jar
复制到这个 plugin 中同样的 /Contents/Home/lib/
位置:
注意,这张图的文件结构是对 "JavaAppletPlugin.plugin" 右键,然后点击 "Show Package Contents" 之后显示的内容。
这样我们把找不到 tools.jar
这个问题也解决了之后, 你的项目应该可以正常编译到 Android 了。
先点击,Build, 然后点击 Make,这两步操作都完成后,你就在这个位置看到构建产物了(可安装到 Android 设备上的 apk 包):
我们还可以通过点击这个链接按钮, 将 Build 和 Make 连到一起:
这样按一下就可以生成 apk 了:
总之,发布到 Android 完整的构建流程还是有很多细节要注意的,可惜的是官方文档并没有提到这些细节。
第三坑, 如何修改生成包的图标和桌面名称打包也成功了,游戏可以在 Android 正常运行了,准备发布了,又发现另外一个问题,它生成的 Android 包在桌面上是这样的:
这个图标和名称肯定要修改,我第一时间去翻文档,结果不出预期,没找到。
然后去 Google 搜索吧,结果都是说在 jsbxxx 之类的目录里,我一看这些内容都是 cocos 2.x 时候的。 我用的 3.7.1 版本中根本找不到他们说的那些目录了。
搜来搜去,网上的文章看了半天也没得到解决方法。 于是我换了一个思路,我想既然他能生成 cocos 的默认图标,那么这个图标必然会存放在一个地方,那我就直接用 Finder 在项目目录里面去找所有的 png 文件,然后反向找出这个文件所在的目录,结果还真找到了,就是这里:
cocos 项目跟目录中 /native/engine/android/res/
这里面就是设置图标和应用桌面名称的地方,这个也是cocos生成 Android 工程目录的地方,这个是不是最优解我真不知道了,因为文档压根没提这件事。 其中5个 mipmap 开头的文件夹,一看就是标准的存放 Android 图标的地方,替换成我们自己的即可。
values
文件夹中有一个 strings.xml
文件:
这里面可以设置我们的应用名称, 格式如下:
<string name="app_name" translatable="false">GameName</string>
</resources>
这个事情虽然简单,但是也是每个开发者肯定都会遇到的问题,没有文档就会浪费好多不必要的时间。 我就当帮 Cocos Creator 补全一部分文档吧。
写在最后Cocos Creator 肯定是一款不错的游戏引擎,而且是开源的,经过了这么多年的积累,很多比较知名的产品都是基于它来开发的。不过对于新上手没那么了解的开发者来说,踩坑确实也多,因为 Cocos Creator 最近版本更新比较快,而且 3.x 版本的改动也大,导致文档速度经常跟不上开发的速度,这里的内容就当作是一个Cocos Creator 文档的补充吧。
如果你觉得这篇文章有帮助,还可以关注微信公众号 swift-cafe,会有更多我的原创内容分享给你~
本站文章均为原创内容,如需转载请注明出处,谢谢。
![]() 发现更多精彩 swift-cafe |