java调用lua

244 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 
import org.cocos2dx.lib.Cocos2dxLuaJavaBridge;
import org.cocos2dx.lua.AppActivity;
 
public class MethodToLuaJ {
    private volatile static MethodToLuaJ instance;
    private static AppActivity appActivity;
    private MethodToLuaJ(){
        appActivity = AppActivity.getInstance();
    }
    static public MethodToLuaJ getInstance()
    {
        if(instance==null)
        {
            synchronized(MethodToLuaJ.class)
            {
                if(instance==null)
                {
                    instance = new MethodToLuaJ();
                }
            }
        }
        return instance;
    }
 
public void uploadHardwareInfo(final String arg0) {
        appActivity.runOnGLThread(new Runnable() {
            @Override
            public void run() {
                Cocos2dxLuaJavaBridge.callLuaGlobalFunctionWithString("uploadHardwareInfo", arg0);
            }
          });
    }
 
}

这样就算是java到lua的接口就算好了,arg0是参数,只需要在java需要的地方调用就可以了,如下:

            	System.out.println("check emulatorInfo:" + emulatorInfo);
            	MethodToLuaJ.getInstance().uploadHardwareInfo(emulatorInfo);
            }

那么lua当中必须要有这个函数 uploadHardwareInfo 我就随便一个全局函数:

    luaPrint("硬件信息 ",info)
end

好了,不说了,简单的很,回去看电视了