How to compile Lua 5.4.0 for Android as a dynamic library using Android Studio 4
This is a tutorial on how to compile Lua 5.4.0 for Android as a dynamic library (liblua.so) using the Windows Android Studio 4.
1. Download and install Android Studio 4.0 for Windows 64-bit.
2. Start a new Android Studio project.

3. Create a new empty project with No Activity

4. Name the project Lua Library, choose Java as the language and set a minimum SDK version.

5. Go to File | Settings and navigate to Appearance | System Settings and Android SDK

6. Go to the tab named SDK Tools and select the NDK (Side by Side) option and press Apply (accept the License and install it)

7. In the Project Explorer on the left navigate to the LuaLibrary | app | src folder and with right mouse button choose New | Directory and name it jni


8. On that jni-folder click the right mouse button and select New | File and name it Android.mk


9. Use default selected Text file type

and fill the newly created but empty file with
|
1 2 3 4 5 6 7 8 9 10 11 |
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LUA_VERSION := 5.4.0 LOCAL_ARM_MODE := arm LOCAL_CFLAGS := -D"l_getlocaledecpoint()='.'" -DLUA_ANSI LOCAL_MODULE := liblua$(LUA_VERSION) LOCAL_LUA_SRC := lua-$(LUA_VERSION)/src LOCAL_SRC_FILES := $(LOCAL_LUA_SRC)/lapi.c $(LOCAL_LUA_SRC)/lauxlib.c $(LOCAL_LUA_SRC)/lbaselib.c $(LOCAL_LUA_SRC)/lcode.c $(LOCAL_LUA_SRC)/lcorolib.c $(LOCAL_LUA_SRC)/lctype.c $(LOCAL_LUA_SRC)/ldblib.c $(LOCAL_LUA_SRC)/ldebug.c $(LOCAL_LUA_SRC)/ldo.c $(LOCAL_LUA_SRC)/ldump.c $(LOCAL_LUA_SRC)/lfunc.c $(LOCAL_LUA_SRC)/lgc.c $(LOCAL_LUA_SRC)/linit.c $(LOCAL_LUA_SRC)/liolib.c $(LOCAL_LUA_SRC)/llex.c $(LOCAL_LUA_SRC)/lmathlib.c $(LOCAL_LUA_SRC)/lmem.c $(LOCAL_LUA_SRC)/loadlib.c $(LOCAL_LUA_SRC)/lobject.c $(LOCAL_LUA_SRC)/lopcodes.c $(LOCAL_LUA_SRC)/loslib.c $(LOCAL_LUA_SRC)/lparser.c $(LOCAL_LUA_SRC)/lstate.c $(LOCAL_LUA_SRC)/lstring.c $(LOCAL_LUA_SRC)/lstrlib.c $(LOCAL_LUA_SRC)/ltable.c $(LOCAL_LUA_SRC)/ltablib.c $(LOCAL_LUA_SRC)/ltm.c $(LOCAL_LUA_SRC)/lundump.c $(LOCAL_LUA_SRC)/lutf8lib.c $(LOCAL_LUA_SRC)/lvm.c $(LOCAL_LUA_SRC)/lzio.c include $(BUILD_SHARED_LIBRARY) |
10. Repeat step 8 and create a file named Application.mk and fill it with
|
1 2 3 4 |
APP_ABI := all APP_PLATFORM := android-23 |
11. Download Lua 5.4.0 source code, extract it and copy/paste the complete lua-5.4.0 folder inside the jni folder within Android Studio project explorer

12. Open a terminal with right click on the jni folder (Open in Terminal)


13. in that terminal window type this command (you may need to adjust the path to reflect your current installed NDK version!):
|
1 2 3 |
%localappdata%\Android\Sdk\ndk\21.2.6472646\ndk-build |
14. in the LuaLibrary\app\libs folder you’ll then find the shared libraries

No comments yet.
Leave a comment
About Dennis D. Spreen
Search
Recent Posts
- How to compile Lua 5.4.0 for Android as a dynamic library using Android Studio 4
- Please make inline vars usable for production – fix RSP-28892
- How to compile Lua 5.4.0 as a Mac OS X dynamic library
- How to compile Lua 5.4.0 for Linux as a shared library
- How to compile Lua 5.4.0 for Windows
- Daily Wage – a Spigot/Bukkit plugin that pays out a daily wage
- How to compile Lua 5.3.5 for Windows
- Better Collada exporter for Blender with custom properties
- MOS6502-delphi – a MOS 6502 CPU emulator for Delphi
- Pass a multidimensional array as a parameter (with a hidden caveat)
Categories
Tags
Archives
- May 2020
- March 2020
- June 2019
- March 2017
- August 2016
- July 2016
- June 2016
- January 2016
- September 2015
- February 2015
- January 2015
- October 2014
- September 2014
- August 2014
- May 2014
- March 2014
- February 2014
- November 2011
- June 2011
- February 2011
- March 2010
- September 2009
- August 2009
- July 2009
- May 2009
- March 2009
- February 2009
- January 2009
- November 2008
- October 2008
- February 2008
- June 2007
Delphi Feeds
- Treating Delphi Compiler Versions As Data May 25, 2026
- Bring OpenAI, Local LLMs, And AI Assistants To FMX Apps May 24, 2026
- Fritz!Box zurücksetzen ohne Telefon oder Kennwort über Notfall-IP May 24, 2026
- Dew Lab Studio 2026 for Delphi and C++Builder May 24, 2026
- DelphiGemini Brings Native Google Gemini AI Integration To Delphi May 24, 2026
- Elements .3085 May 23, 2026
- Local LLMs for Delphi: A Production Benchmark — Part 1: Design and Methodology May 22, 2026
- MakerAI Brings Enterprise-Grade AI Orchestration to Delphi May 21, 2026
- Building an Android APK on a Linux Box, No Root Required May 21, 2026
- A New RAD Studio Workflow Is Coming May 20, 2026


