Giter Club home page Giter Club logo

android-lua's Introduction

Hi, Chenhe here 👋

A young man who is willing to devote himself to what he loves and to sacrifice to fight against what he hates.

If I make some serious statements or important releases, please verify my PGP key.

  • 🌎 Believe in OPENNESS.
  • 🚫 Avoid politics. (Even though it's necessary)
  • 👀 APP perfectionist. Fu*k Wechat, Baidu, etc.
  • 😄 Love modern technology.
  • 😠 Hate companies that don't upgrade their architecture.

🌱 I'm the co-founder of the COT watch face. This is a startup company, but I prefer to call it an experimental field -- we give birth to strange ideas and bring them into reality -- although most of the time they doesn't bring in income.

📱 Devices in use

Galaxy S23 Galaxy Watch4 Galaxy Buds 2 Pro DJI Air3 Raspberry Pi 3B+ Synology DS720+

📫 Get in touch

Personal Website Telegram stack overflow Sina Weibo E-Mail

android-lua's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-lua's Issues

请问应该怎么使用多线程呢?

我这样写,并没有用。。

public class FunctionThread extends JavaFunction {
    /**
     * Constructor that receives a LuaState.
     *
     * @param L LuaState object associated with this JavaFunction object
     */
    private LuaObject luaFunc;
    private LuaState luaThread;
    public FunctionThread(LuaState L) {
        super(L);
    }

    @Override
    public int execute() throws LuaException {
        if (L.isFunction(2)) {
            luaFunc = L.getLuaObject(2); 
            luaThread= L.newThread();
            luaThread.pushObjectValue(luaFunc);
            new Thread(new Runnable() {
                @Override
                public void run() {
                    int p = luaThread.pcall(0,0,0);
                    if(p!=0){
                        Log.i("99999999999",luaThread.toString(-1));
                    }

                }
            }).start();
        }
        return 0;
    }
    public void register() {
        try {
            register("threads");
        } catch (LuaException e) {
            e.printStackTrace();
        }
    }
}

任何人都可以回答这个问题!

Call function from another lua file

How to import another lua file and call function from it ?
i got this error :

1: string = '[string "require "import"..."]:1: module 'import' not found:
no field package.preload['import']
no file '/usr/local/share/lua/5.3/import.lua'
no file '/usr/local/share/lua/5.3/import/init.lua'
no file '/usr/local/lib/lua/5.3/import.lua'
no file '/usr/local/lib/lua/5.3/import/init.lua'
no file './import.lua'
no file './import/init.lua'
no file '/usr/local/lib/lua/5.3/import.so'
no file '/usr/local/lib/lua/5.3/loadall.so'
no file './import.so''
2: string = 'attempt to call a nil value'

如何访问java类的属性呢?

public class TrainRecord {
public String student_id;
}
这个类作为参数传入lua函数里面
这样的属性如何访问?再lua里面用TrainRecord.student_id访问不行

luajava 用不了,这个是从Andro-lua改过来后,缩减了吗

java code:

package cc.chenhe.lib.androidlua.demo;
import android.util.Log;
public class TestUtil {
    private final static String TAG = "jamaljo";
    public void show() {
        Log.d(TAG, "############show: ");
    }
}

lua code:

TestUtil = luajava.bindClass("cc.chenhe.lib.androidlua.demo.TestUtil");
TestUtil:show(3)

luajava 找不到

如果lua脚本有错怎么获取呢?

非常感谢作者这个项目,我有个小问题,按照demo改的,
lua.LdoString(readAssetsTxt(this, "main.lua"));
如果这个脚本报错了,java代码中怎么能知道呢?或者有其他办法抛出也行

请问如何正确实现sleep延时效果

JavaFunction sleep = new JavaFunction(L) {
                @Override
                public int execute() throws LuaException {
                    int time = L.toInteger(2);
                    try {
                        Thread.sleep(time);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    return 1; 
                }
            };
            sleep.register("sleep");

例子:
print(1)
sleep(6000)
print(2)

问题:sleep()和print等函数一起使用时,延时6秒后才同时打印出1和2(而不是先打1过6秒后打2)
有什么好方法吗?

pushJavaObject注入对象的类成员类型Integer无法识别

Java:

    MyBean myBean;
    //测试全局变量参数读写
    @Test
    public void testUpdateMyBean() {
        try {
            Log.d("testUpdateMyBean", "=============== test1");
            LuaState lua = LuaStateFactory.newLuaState();
            lua.openLibs();
    
            myBean = new MyBean();
            myBean.name = "zhang3";
            myBean.age = 18;
    
            System.out.println(myBean);
    
            lua.pushJavaObject(myBean);
            lua.setGlobal("myBean");
    
            String str = Config.getRawString(ctx, R.raw.testupdatemybean);
            System.out.println(str);
            int result = lua.LdoString(str);
            System.out.println("result==" + result);
            String msg = lua.toString(-1);
            System.out.println("msg==" + msg);
    
            lua.getGlobal("myBean");
            myBean = (MyBean) lua.toJavaObject(-1);
            lua.pop(1);
            System.out.println(myBean);
    
            lua.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        Log.d("testUpdateMyBean", "=============== test2");
    }
    
    public static class MyBean {
        private String name;
        private Integer age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "MyBean{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }

testupdatemybean.lua:

        myBean:setName('li4')
        myBean:setAge(50)

错误日志:

Invalid method call. No such method.

無法在Java 物件函數使用自己傳回的數值,會exception

請見附檔
新增了Pattern 這個物件
Pattern 有 similar() 和 getSimilar() 這兩個函數
如果直接將相同物件getSimilar() 的回傳值給similar(),會造成exception
pattern:similar(pattern:getSimilar())
GET LUA VARIABLE 'V1' 會不正常
如果將此行拿掉則會正常

另外,間接設定similar 則會正常
sim = pattern:getSimilar()
pattern:similar(sim)

problem.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.