最近我在做一个新的游戏,出于某种原因这是一个手机游戏,所以我需要把它打包到安卓。
一开始没什么头绪就去看YouTube视频,它很好的帮助了我解决了大部分的问题:https://www.youtube.com/watch?v=vsRnFMMhr58
根据视频里做的,我下载了Android Studio,然后通过Android下载了JDK和NDK,之后为JDK和NDK配置环境
之后使用love-android帮助我打包到安卓
首先要根据love-android上说的把仓库clone下来,
git clone --recurse-submodules https://github.com/love2d/love-android
视频里是改里面一点的文件的配置,但是love-android之后似乎有更新,所以只需要在./gradle.properties
修改app.application_id
和app.orientation
就会影响到./app/src/main/AndroidManifest.xml
然后我想可能需要在AndroidManifest.xml
里修改label,这会影响到包的显示名字。
我最后生成的版本没和视频走,使用Android Studio,上面菜单找到Build,下拉选单先Generate APP Bundles or APKs
了一个出来,之后选择Generate Signed APP Bundles or APK...
。
有关签名首先需要一个密钥,但是这在Android Studio中很容易创建一个,选择APK,Key Store Path那直接Create New如果你没有一个key,密码随便填一个就好,下面的信息也随便照着填一填。出来之后Choose Existing,然后找到之间创建的Key。下面会要求你填密码,照着之前写的填就好。
然后会让你选择一个Variants,如果你的游戏需要麦克风需要选择有record的,然后选择embed开头的,打包到安卓的本质是把nogame替换成了你的game,embed会直接进入游戏,如果是normal的话会让你选择一个.love文件在打开程序之后,这并不是我们想要的。然后就是选择Release的字样。等待打包完成后就能看到你的apk了。
这边可能会有一个问题,就是你发现游戏的包体很大,点击Build下拉选单的Analyze APK或者直接用zip打开apk去看它的构成内容,你可能会发现lib文件占了大头。这边直接删掉非当前架构的lib就能直接减少20多MB的空间占用。但是这样你需要用其他方法给当前的包重新签名,因为包被修改过了。
还有一种方法是,./app/build.gradle
里,删掉abiFilters
行的另外两个非当前架构,我build的是arm64-v8a
,也推荐你和我一样。选择架构应该能在Android Studio的某个地方看到。
如果你需要替换icon,res文件夹里面根据不同尺寸的icon去进行替换即可。