java调用lua

package com.XXX.project; // 包名

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需要的地方调用就可以了,如下:

public void findEmulator(String emulatorInfo) {
            	System.out.println("check emulatorInfo:" + emulatorInfo);
            	MethodToLuaJ.getInstance().uploadHardwareInfo(emulatorInfo);
            }

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

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

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

猜你喜欢

转载自blog.csdn.net/pyf_914406232/article/details/103422739