在macOS搭建LÖVE for Android平台

  欢迎参与讨论,转载请注明出处。

前言

  近日在搭建macOS下的LÖVE for Android遇到了不少问题,虽然有官方Wiki的帮助,但却发现了不少实操中才会遇到的问题,特此记录,以便后人。

JDK

  由于安卓SDK只支持到了JDK8,所以只好装JDK8,新版将无法打开安卓SDK。可选择前往官网或者使用Homebrew下载。使用Homebrew如此输入便可:

1
2
$ brew tap caskroom/versions
$ brew cask install java8

SDK

  由于谷歌的尿性,安卓SDK的官网上已无合适的安卓SDK提供下载了,只剩下Android Studio和Android SDK命令行工具。此命令行工具实际上缺少了不少东西,所以也不推荐。本人推荐前往AndroidDevTools进行下载,认准SDK Tools项便是。
  下载完成后便需要安装各种工具了,使用命令行运行SDK/tools目录下的android即可打开SDK安装界面,然后按照官方Wiki所言般安装相关工具即可。sdk
  值得一提的是Android Support Library,在谷歌官方源似乎已经找不到了,可以考虑换源或者直接下载官方文件,下载完成后置于SDK/extras目录下即可。

NDK

  这里官方Wiki便开始坑人了:Once you have the SDK tools you can get the NDK version r9d from here (Download acording to your system).事实上r9d会因为某个部件版本过低而对接失败,必须是小于15大于9的版本。去AndroidDevTools下载即可。

Ant

  这个没什么坑点,照常下载即可。不过ant将会作为一个常用命令去使用,所以推荐在Homebrew进行安装:$ brew install ant即可。

环境变量

  把love-android-sdl2下载后(当然我使用的是0.10.2版本,所以下载的是这个),仍需要配置环境变量,参考官方Wiki即可。大致上是在~/.bash_profile文件添加SDK与NDK的路径:

1
2
export ANDROID_HOME=/Developer/SDKs/android-sdk-macosx
export ANDROID_NDK=/Developer/Tools/ndk

  然后是在/etc/paths.d/android-sdk文件添加SDK的tools与platform-tools以及ant的bin目录:

1
2
3
/Developer/SDKs/android-sdk-macosx/tools
/Developer/SDKs/android-sdk-macosx/platform-tools
/Developer/Tools/ant/bin

编译

  环境变量部署完毕后,便可以开始编译LÖVE for Android工程了(ndk-build是NDK文件夹下的一个工具):

1
2
$ cd ~/repos/love-android-sdl2
$ ndk-build

  若是一切平安无事的话,便接近大功告成了!

发布

  首先需要在LÖVE for Android目录下新建assets文件夹,然后将游戏打包命名为game.love并放置过去。然后在LÖVE for Android目录下执行$ ant debug即可,稍等便会于bin目录下生成apk文件。
  当然这样生成的apk文件与从官网直接下载的APK包外表无异,所以仍需要定制化,参考此篇即可,不再复述。

后续问题

  • 由于在大多数硬盘格式上是不区分大小写的,而到了.love文件下则会区分。这点需要仔细检查。
  • 由于LÖVE for Android使用的LuaJIT版本为2.1,而普世平台(Windows/macOS/Ubuntu)使用的版本还在2.0.4,而2.1与2.0的字节码无法兼容,所以需要使用2.1版本进行生成。
  • 在手机上对于GLSL的格式要求更为严格,详情参考此篇,总体来说便是:不要写整数,小数点结尾也不要带f

后记

  其实当年也曾在Windows系统部署过,却未曾有现在这般多坑,可见流行系统也有流行系统的好处啊。这篇文章似乎都可以投稿到他们仓库了呢(笑)