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
- February updates! February 21, 2025
- New Features and Enhancements in .NET Core 3.1 February 21, 2025
- TTMSFNCDataSetFilterDialog: Effortless SQL-Based Filtering for Your Delphi DataSets February 20, 2025
- TeeChart Visualisation in Mesics’ Lactate Diagnostics February 20, 2025
- Teaser: Visuino Live Q&A - Feb 22, 2025 11AM Pacific Time February 20, 2025
- Integrate StellarDS in your TypeScript projects with our latest SDK February 19, 2025
- Code52/carnac: A utility to give some insight into how you use your keyboard (on Windows systems) February 18, 2025
- Delphi 30th Anniversary “Innovation Timeline” Update Published. Get Your Free PDF Now! February 16, 2025
- Delphi Tip of the Day: FMX FastReport Text Object (TfrxMemoView) February 16, 2025
- Join Us in Nederlands for a Coffee and More February 15, 2025