├── settings.gradle.kts ├── .gitignore ├── luajavax ├── src │ ├── main │ │ ├── res │ │ │ └── values │ │ │ │ └── strings.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── bennyhuo │ │ │ └── luajavax │ │ │ ├── LuaFactory.kt │ │ │ ├── utils │ │ │ └── IO.kt │ │ │ ├── core │ │ │ ├── ILua.kt │ │ │ ├── DummyLua.kt │ │ │ └── Lua.kt │ │ │ ├── annotations │ │ │ └── LuaApi.java │ │ │ └── log │ │ │ └── AndroidLog.kt │ └── test │ │ └── java │ │ └── com │ │ └── bennyhuo │ │ └── luajavax │ │ └── ExampleUnitTest.java ├── build.gradle.kts └── proguard-rules.pro ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── app ├── src │ └── main │ │ ├── res │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── layout │ │ │ ├── activity_jnitest.xml │ │ │ └── activity_main.xml │ │ ├── assets │ │ ├── lua │ │ │ ├── setup.lua │ │ │ └── TestErrorMessageForJavaMethodCall.lua │ │ └── logback.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── bennyhuo │ │ └── luajavax │ │ └── sample │ │ ├── MainActivity.kt │ │ └── cases │ │ └── LuaTests.kt ├── proguard-rules.pro └── build.gradle.kts ├── luajava ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── jni │ │ │ ├── lua │ │ │ │ ├── lua.hpp │ │ │ │ ├── lapi.h │ │ │ │ ├── lundump.h │ │ │ │ ├── lprefix.h │ │ │ │ ├── lualib.h │ │ │ │ ├── ldebug.h │ │ │ │ ├── lstring.h │ │ │ │ ├── lzio.c │ │ │ │ ├── lzio.h │ │ │ │ ├── lfunc.h │ │ │ │ ├── linit.c │ │ │ │ ├── ltm.h │ │ │ │ ├── ltable.h │ │ │ │ ├── lctype.h │ │ │ │ ├── ldo.h │ │ │ │ ├── lctype.c │ │ │ │ ├── llex.h │ │ │ │ ├── lmem.h │ │ │ │ ├── lmem.c │ │ │ │ ├── lcode.h │ │ │ │ ├── lopcodes.c │ │ │ │ ├── lvm.h │ │ │ │ ├── lfunc.c │ │ │ │ ├── lcorolib.c │ │ │ │ ├── lparser.h │ │ │ │ ├── lgc.h │ │ │ │ ├── ltm.c │ │ │ │ ├── ldump.c │ │ │ │ ├── lbitlib.c │ │ │ │ ├── lundump.c │ │ │ │ ├── Makefile │ │ │ │ ├── lstring.c │ │ │ │ ├── lutf8lib.c │ │ │ │ ├── lstate.h │ │ │ │ ├── llimits.h │ │ │ │ ├── lauxlib.h │ │ │ │ └── lopcodes.h │ │ │ ├── CMakeLists.txt │ │ │ └── luajava │ │ │ │ └── log.h │ │ └── java │ │ │ └── org │ │ │ └── keplerproject │ │ │ └── luajava │ │ │ ├── LuaException.java │ │ │ ├── CPtr.java │ │ │ ├── LuaInvocationHandler.java │ │ │ ├── Console.java │ │ │ ├── JavaFunction.java │ │ │ └── LuaStateFactory.java │ └── test │ │ └── java │ │ └── org │ │ └── keplerproject │ │ └── luajava │ │ └── ExampleUnitTest.java ├── build.gradle.kts └── proguard-rules.pro ├── LICENSE ├── gradle.properties ├── gradlew.bat ├── README.md └── gradlew /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | include(":app",":luajava", ":luajavax") 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | .gradle 3 | .idea 4 | local.properties 5 | captures 6 | .cxx 7 | .externalNativeBuild 8 | out 9 | -------------------------------------------------------------------------------- /luajavax/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | luax 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bennyhuo/Android-LuaJavax/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bennyhuo/Android-LuaJavax/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /luajavax/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /app/src/main/assets/lua/setup.lua: -------------------------------------------------------------------------------- 1 | print = function(...) 2 | logger:debug(tostring(...)) 3 | end 4 | 5 | function redirect_output(path) 6 | io.output(path) 7 | end -------------------------------------------------------------------------------- /luajava/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/assets/lua/TestErrorMessageForJavaMethodCall.lua: -------------------------------------------------------------------------------- 1 | --comment 1 2 | --comment 2 3 | 4 | print("Hello World") 5 | 6 | logger.debug("This is an invalid Java method call.") -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Android-LuaJava 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /luajava/src/main/jni/lua/lua.hpp: -------------------------------------------------------------------------------- 1 | // lua.hpp 2 | // Lua header files for C++ 3 | // <> not supplied automatically because Lua also compiles as C++ 4 | 5 | extern "C" { 6 | #include "lua.h" 7 | #include "lualib.h" 8 | #include "lauxlib.h" 9 | } 10 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Feb 17 15:03:15 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip 7 | -------------------------------------------------------------------------------- /luajavax/src/main/java/com/bennyhuo/luajavax/LuaFactory.kt: -------------------------------------------------------------------------------- 1 | package com.bennyhuo.luajavax 2 | 3 | import android.content.Context 4 | import com.bennyhuo.luajavax.core.ILua 5 | import com.bennyhuo.luajavax.core.Lua 6 | 7 | object LuaFactory { 8 | 9 | @JvmStatic 10 | fun createLua(context: Context): ILua = Lua(context) 11 | 12 | } -------------------------------------------------------------------------------- /luajavax/src/main/java/com/bennyhuo/luajavax/utils/IO.kt: -------------------------------------------------------------------------------- 1 | package com.bennyhuo.luajavax.utils 2 | 3 | import java.io.InputStream 4 | import java.io.OutputStream 5 | 6 | fun InputStream.copyToAndClose(out: OutputStream, bufferSize: Int = DEFAULT_BUFFER_SIZE): Long { 7 | return copyTo(out, bufferSize).also { 8 | this.close() 9 | out.close() 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_jnitest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | -------------------------------------------------------------------------------- /app/src/main/assets/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | [%thread](%file:%line\)%M: %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /luajavax/src/test/java/com/bennyhuo/luajavax/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.bennyhuo.luajavax; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 |