AutoJs6 icon indicating copy to clipboard operation
AutoJs6 copied to clipboard

JavaAdapter 栈溢出

Open huan1936 opened this issue 8 months ago • 1 comments

版本: 6.6.2 设备: 红米 K50 系统: Android 12 代码:

new JavaAdapter(android.view.View.OnAttachStateChangeListener, {
    onViewAttachedToWindow(view) {
        toastLog('attached');
    },
    onViewDetachedFromWindow(view) {
        toastLog('detached');
    }
});

运行结果

20:23:08.797/E: stack size 8188KB
java.lang.StackOverflowError: stack size 8188KB
    at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:734) 
    at org.autojs.autojs.rhino.AndroidClassLoader.loadClass(AndroidClassLoader.kt:127) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:367) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
    at org.autojs.autojs.rhino.AndroidClassLoader.loadClass(AndroidClassLoader.kt:129) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:367) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
    at org.autojs.autojs.rhino.AndroidClassLoader.loadClass(AndroidClassLoader.kt:129) 
   ...

huan1936 avatar May 05 '25 12:05 huan1936

同样出现了该问题,6.6.1升级6.6.2版本后,相同的代码,新建的适配器报栈溢出

java.lang.StackOverflowError: stack size 8MB at java.util.HashMap$ValueIterator.(HashMap.java:1468) at java.util.HashMap$Values.iterator(HashMap.java:968)

let logAdapter = new BaseAdapter({
    getCount: function() {
        return logs.length;
    },
    getItem: function(position) {
        return logs[position];
    },
    getItemId: function(position) {
        return position;
    },
    getView: function(position, convertView, parent) {
        let textView;
        if (convertView == null) {
            textView = new android.widget.TextView(context);
            textView.setPadding(16, 8, 16, 8);
            textView.setTextSize(14);
        } else {
            textView = convertView;
        }
        textView.setText(logs[position]);
        return textView;
    }
});

dasorb avatar May 09 '25 03:05 dasorb