You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

B4A项目出现ClassCastException异常,请求技术帮助

B4A中java.lang.ClassCastException异常解决

异常信息

java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.Boolean

问题原因

异常触发在Wait For (AddMembers.Invoke(Dir, FileName)) Complete (Result As Boolean)行。你的AddMembers.Invoke方法直接返回了File.CopyAsync的执行结果,但File.CopyAsync返回的是AsyncStreams对象,并非Boolean类型。调用方试图将该对象强制转为Boolean时,就会抛出类型转换异常。

解决方案

修改AddMembers模块的Invoke方法,正确等待异步操作完成后返回布尔结果:

Public Sub Invoke(Dir As String, FileName As String) As ResumableSub
    Dim copySuccess As Boolean = False
    Try
        ' 等待文件复制异步操作完成,获取布尔结果
        Wait For (File.CopyAsync(Dir, FileName, Members.MembersDir, Members.MembersFile)) Complete (Result As Boolean)
        copySuccess = Result
    Catch
        ' 捕获复制过程中的异常,标记操作失败
        copySuccess = False
    End Try
    Return copySuccess
End Sub

说明

  • File.CopyAsync是异步方法,必须通过Wait For等待其执行结束,才能拿到布尔类型的执行结果。
  • 增加Try-Catch块可以处理文件不存在、权限不足等异常场景,确保方法始终返回有效的Boolean值,避免后续逻辑出错。

内容的提问来源于stack exchange,提问作者dev.tejasb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 08:30:00