Home

Awesome

Android Port of LÖVE, an awesome 2D game engine for Lua (http://love2d.org)
Copyright (c) 2006-2024 LOVE Development Team

Build Status

Download:

You can download pre-built Android packages from https://github.com/love2d/love/releases/latest that allow you to run .love files by opening them using a file manager of your choice.

Important:

If you want to build from source, make sure to clone the submodules too. Often errors include missing liblove.so and "Missing LÖVE" error when building. A proper way to clone this repository is:

git clone --recurse-submodules https://github.com/love2d/love-android

Add -b <branch/tag name> and --depth 1 if needed.

If you already cloned the repository but forgot to initialize the submodules, execute:

git submodule sync --recursive
git submodule update --init --force --recursive

In the repository directory. For the last command, add --depth 1 if needed.

Instructions:

Detailed instructions can be viewed at https://github.com/love2d/love-android/wiki

Quick Start:

Before you start, install JDK 17 (not later not earlier). If you intend to build from Android Studio, skip this step as Android Studio bundles its own JDK 17.

Install CMake version 3.21 or later in your system. Install Android SDK with SDK API 34 (34.x.y) and Android NDK 26.1.10909125, set the environment variable ANDROID_HOME to your Android SDK as necessary then run.

$ ./gradlew assembleNormalRecord

in the root folder of this project. This should give you an .apk file in the app/build/outputs/apk/normalRecord subdirectory that you can then sign and install on your phone. The normalRecord .apk variant is what you normally have when downloading APK from https://love2d.org.

If you want to put your game inside the APK, you can either:

  1. Put all your games in app/src/embed/assets such that your main.lua path is app/src/embed/assets/main.lua; or
  2. Put your zipped *.love in app/src/embed/assets with name game.love

And change the application id, application version string and codes, application display name, and the icons (see Game Packaging Wiki. Afterwards, run either gradlew assembleEmbedNoRecordRelease (or gradlew assembleEmbedRecordRelease if your game uses microphone) to generate APK which you can install or gradlew bundleEmbedNoRecordRelease (or gradlew bundleEmbedRecordRelease) to generate AAB which you can upload to Play Store.

Alternatively, you can install Android Studio 2022.3.1 or later. After opening it for the first time, open its SDK Manager and on the tab "SDK Tools", tick "Show Package Details" then select NDK (Side By Side) version 26.1.10909125. After that, open the repository root.

Notice: Previously, the embed + APKTool method is preferred, but recent announcements by Google and recent changes in Android render that method obsolete.

Bugs:

Bugs and/or feature requests should be reported to the issue tracker at:

Note: If in doubt, fill an issue report to https://github.com/love2d/love/issues. We'll transfer the issue to this repository as needed.

Changelog:

11.5:

11.4:

11.3:

11.2:

0.10.2:

0.10.1:

0.10.0:

0.10.0-alpha2:

0.9.2a:

0.9.2:

0.9.1b:

0.9.1a:

0.9.1:

beta2:

beta1:

alpha9:

alpha8:

alpha7:

License:

This project contains code from multiple projects using various licenses. Please look at LOVE license.txt for the respective licenses.