最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

如何在android运行lua脚本(最简单的讲解,一看就懂)

业界 admin 18浏览 0评论

1.打开 android studio
2.引入luaj-jse-3.0.1.jar包(百度自行下载)
3.新建assets文件夹
4.在assets文件夹下新建一个 main.lua文件,内容如下

function test(str)
    print(str)
    return 'atomic'
end

5.MainActivity.java 内容如下

package com.atomic.test;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import org.luaj.vm2.Globals;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.ResourceFinder;
import org.luaj.vm2.lib.jse.JsePlatform;
import java.io.InputStream;

public class MainActivity extends AppCompatActivity implements ResourceFinder {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Globals globals = JsePlatform.standardGlobals();
        globals.finder=this;
        globals.loadfile("main.lua").call(); //先加载lua文件
        //获取带参函数test
        LuaValue luaValue=globals.get(LuaValue.valueOf("test"));
        //执行test方法,传入String类型的参数参数
        String data=luaValue.call(LuaValue.valueOf("this is java")).toString();
        Log.i("a10",data);
    }

	//重新构建findResource
    @Override
    public InputStream findResource(String name){
        try {
            return getBaseContext().getAssets().open(name);
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
}

5.运行程序

1.打开 android studio
2.引入luaj-jse-3.0.1.jar包(百度自行下载)
3.新建assets文件夹
4.在assets文件夹下新建一个 main.lua文件,内容如下

function test(str)
    print(str)
    return 'atomic'
end

5.MainActivity.java 内容如下

package com.atomic.test;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import org.luaj.vm2.Globals;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.ResourceFinder;
import org.luaj.vm2.lib.jse.JsePlatform;
import java.io.InputStream;

public class MainActivity extends AppCompatActivity implements ResourceFinder {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Globals globals = JsePlatform.standardGlobals();
        globals.finder=this;
        globals.loadfile("main.lua").call(); //先加载lua文件
        //获取带参函数test
        LuaValue luaValue=globals.get(LuaValue.valueOf("test"));
        //执行test方法,传入String类型的参数参数
        String data=luaValue.call(LuaValue.valueOf("this is java")).toString();
        Log.i("a10",data);
    }

	//重新构建findResource
    @Override
    public InputStream findResource(String name){
        try {
            return getBaseContext().getAssets().open(name);
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
}

5.运行程序

发布评论

评论列表 (0)

  1. 暂无评论