AutoX
AutoX copied to clipboard
Autox.js运行中随机崩溃
- Autox.js 版本:635
- Autox.js 下载渠道:https://github.com/kkevsekk1/AutoX/releases
- Android 版本:Android 12
- Android 机型:Redmi K50 Ultra
- Android 系统类别:MIUI 13
- VSCODE Autox.js 扩展版本(可选,如果是连接电脑的问题需要填):
- 问题描述: Autox.js在运行中随机崩溃,弹出包含如下日志信息的崩溃界面。崩溃是否发生与是否正在运行脚本无关,崩溃发生时其它APP均正常运行,系统显示可用内存充足。
- 报错日志(可选): Version: 635 Android: 31 java.lang.OutOfMemoryError: Failed to allocate a 3384 byte allocation with 4920288 free bytes and 4804KB until OOM, target footprint 536870912, growth limit 536870912; giving up on allocation because <1% of heap free after GC. java.util.Arrays.copyOf(Arrays.java:3257) java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) java.lang.StringBuilder.append(StringBuilder.java:137) com.stardust.autojs.core.util.Shell$MyShellTermSession.onNewLine(Shell.java:224) com.stardust.autojs.core.util.Shell$MyShellTermSession.onOutput(Shell.java:267) com.stardust.autojs.core.util.Shell$MyShellTermSession.processInput(Shell.java:289) jackpal.androidterm.emulatorview.TermSession.readFromProcess(TermSession.java:500) jackpal.androidterm.emulatorview.TermSession.access$100(TermSession.java:60) jackpal.androidterm.emulatorview.TermSession$1.handleMessage(TermSession.java:124) android.os.Handler.dispatchMessage(Handler.java:106) android.os.Looper.loopOnce(Looper.java:211) android.os.Looper.loop(Looper.java:300) android.app.ActivityThread.main(ActivityThread.java:8243) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
- 屏幕截图(可选):
OutOfMemoryError 内存泄漏。不知道是不是你的代码问题
OutOfMemoryError 内存泄漏。不知道是不是你的代码问题
不过在没有运行任何脚本的时候也会出现崩溃
我也遇到了这个问题 看起来是GC机制问题我这里复现是提前回收了操作 例如:
var ra = new RootAutomator(); ra.swipe(x1, x2, y1, y2, 300, 1)//执行一个swipe 300ms ra.exit();//root权限 直接退出了
短时间重复事件 就会造成内存泄露
仅供参考 PS:这个软件真的太棒辣
那怎么回收呢,我使用setinterval保持ws心跳也会这样
或许可以试试 while true sleep1000 来保活 注意作用域概念 避免重复申请
这样做的话得单独开个线程,怎么监控ws是否挂了,能否再指点下
不知道你具体场景 如果是聊天场景那有点绕了 如果是UI监听类 可以试试scrcpy 或者 在shell中发送一个android 广播 发自我的 iPhone在 2023年11月10日,01:52,Quit @.> 写道: 或许可以试试 while true sleep1000 来保活 注意作用域概念 避免重复申请 这样做的话得单独开个线程,怎么监控ws是否挂了,能否再指点下 —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>
现在是在脚本中创建个ws接收服务器下发的脚本指令,当接收到新脚本中,在ws脚本中创建新的脚本运行,ws的脚本保持不掉线,现在就是运行两小时左右就会掉线
具体报错是
Version: 8031300Android: 30 Error: java.lang.OutOfMemoryError: Failed toallocate a 72 byte allocation with 32 free bytesand 32B until OOM, target footprint 536870912growth limit 536870912 java.lang.OutOfMemoryError: Failed to allocatea 72 byte allocation with 32 free bytes and 32Buntil OOM, target footprint 536870912, growthlimit 536870912 at android.os.MessageMonitor$MessageMonitorlnfmarkFinish(MessageMonitorjava:546)
原先是在ui线程中创建的ws,然后ui线程在后台半小时就被杀掉,现在在脚本线程中可用维持两小时左右
解决了嘛
我的也是跑一会就内存溢出 不知道咋解决
确定是溢出?还是空指针
发送自我的盖乐世
-------- 原始信息 -------- 发件人: chenjunliangya @.> 日期: 2024/7/15 09:59 (GMT+08:00) 收件人: kkevsekk1/AutoX @.> 抄送: Subscribed @.***> 主题: Re: [kkevsekk1/AutoX] Autox.js运行中随机崩溃 (Issue #499)
我的也是跑一会就内存溢出 不知道咋解决
― Reply to this email directly, view it on GitHubhttps://github.com/kkevsekk1/AutoX/issues/499#issuecomment-2227591168, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AD64RCGUDRE7O53PR2M2E2DZMMUIHAVCNFSM6AAAAAAVDCNRO6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRXGU4TCMJWHA. You are receiving this because you are subscribed to this thread.Message ID: @.***>
确定是溢出 java.lang.OutOfMemoryError: Failed to allocate a 32 byte allocation with 3992 free bytes and 3KB until OOM
这个问题好像是autojs的引擎问题,autojs.pro文档里面说了,包括免费版和pro9.2以下的版本,有引擎自身的内存泄露的问题。