[Bug] 小组件不显示考试信息
既然能把考试信息列入到日程表里,没理由小组件里列不出来吧, 而且物理实验不也都实现列入日程表里和小组件里了吗
肯定有理由列出来啊,我代码都写着呢,能加载实验信息和考试信息。小部件如果加载某个信息失败了,应该会有报错的。
肯定有理由列出来啊,我代码都写着呢,能加载实验信息和考试信息。小部件如果加载某个信息失败了,应该会有报错的。
非常不幸,我没有看到列出来过,我以为没做这个功能
这是和老电表的组件图片,并没有显示考试信息
强制清缓重启后的报错信息,手动设置时间到有考试的那天
[exception] | 22:20:01 957ms |
Instance of 'NotFetchLibraryException'
StackTrace: #0 LibrarySession.initSession (package:watermeter/repository/xidian_ids/library_session.dart:220)
<asynchronous suspension>
#1 LibrarySession.getBorrowList (package:watermeter/repository/xidian_ids/library_session.dart:112)
<asynchronous suspension>
#2 Future.wait.<anonymous closure> (dart:async/future.dart:525)
<asynchronous suspension>
#3 update.<anonymous closure> (package:watermeter/page/homepage/refresh.dart:100)
<asynchronous suspension>
#4 Future.wait.<anonymous closure> (dart:async/future.dart:525)
<asynchronous suspension>
#5 update (package:watermeter/page/homepage/refresh.dart:82)
<asynchronous suspension>
#6 _HomePageMasterState._loginAsync (package:watermeter/page/homepage/home.dart:96)
<asynchronous suspension>
}
[exception] | 22:23:07 76ms |
Instance of 'NotFetchLibraryException'
StackTrace: #0 LibrarySession.initSession (package:watermeter/repository/xidian_ids/library_session.dart:220)
<asynchronous suspension>
#1 LibrarySession.getBorrowList (package:watermeter/repository/xidian_ids/library_session.dart:112)
<asynchronous suspension>
#2 Future.wait.<anonymous closure> (dart:async/future.dart:525)
<asynchronous suspension>
#3 update.<anonymous closure> (package:watermeter/page/homepage/refresh.dart:100)
<asynchronous suspension>
#4 Future.wait.<anonymous closure> (dart:async/future.dart:525)
<asynchronous suspension>
#5 update (package:watermeter/page/homepage/refresh.dart:82)
<asynchronous suspension>
#6 _HomePageMasterState._loginAsync (package:watermeter/page/homepage/home.dart:96)
<asynchronous suspension>
}
DioException [request cancelled]: The request was manually cancelled by the user.
Error: Offline mode, all ids function unuseable.
StackTrace: #0 DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1 SysjSession.getDataFromSysj (package:watermeter/repository/xidian_ids/sysj_session.dart:28)
<asynchronous suspension>
#2 ExperimentController.getOtherExperiment (package:watermeter/controller/experiment_controller.dart:359)
<asynchronous suspension>
#3 Future.wait.<anonymous closure> (dart:async/future.dart:525)
<asynchronous suspension>
#4 ExperimentController.get.<anonymous closure> (package:watermeter/controller/experiment_controller.dart:465)
<asynchronous suspension>
#5 ExperimentController.get (package:watermeter/controller/experiment_controller.dart:465)
<asynchronous suspension>
}
DioException [request cancelled]: The request was manually cancelled by the user.
Error: Offline mode, all ids function unuseable.
StackTrace: #0 DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1 EhallSession.isLoggedIn (package:watermeter/repository/xidian_ids/ehall_session.dart:36)
<asynchronous suspension>
#2 EhallSession.useApp.<anonymous closure> (package:watermeter/repository/xidian_ids/ehall_session.dart:78)
<asynchronous suspension>
#3 BasicLock.synchronized (package:synchronized/src/basic_lock.dart:38)
<asynchronous suspension>
#4 EhallSession.useApp (package:watermeter/repository/xidian_ids/ehall_session.dart:73)
<asynchronous suspension>
#5 ExamSession.getExamEhall (package:watermeter/repository/xidian_ids/exam_session.dart:71)
<asynchronous suspension>
#6 ExamController.get (package:watermeter/controller/exam_controller.dart:127)
<asynchronous suspension>
#7 ExamController.onReady (package:watermeter/controller/exam_controller.dart:113)
<asynchronous suspension>
}
DioException [request cancelled]: The request was manually cancelled by the user.
Error: Offline mode, all ids function unuseable.
StackTrace: #0 DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1 EhallSession.isLoggedIn (package:watermeter/repository/xidian_ids/ehall_session.dart:36)
<asynchronous suspension>
#2 EhallSession.useApp.<anonymous closure> (package:watermeter/repository/xidian_ids/ehall_session.dart:78)
<asynchronous suspension>
#3 BasicLock.synchronized (package:synchronized/src/basic_lock.dart:38)
<asynchronous suspension>
#4 EhallSession.useApp (package:watermeter/repository/xidian_ids/ehall_session.dart:73)
<asynchronous suspension>
#5 ClassTableFile.getEhall (package:watermeter/repository/xidian_ids/classtable_session.dart:286)
<asynchronous suspension>
#6 ClassTableController.updateClassTable (package:watermeter/controller/classtable_controller.dart:263)
<asynchronous suspension>
#7 ClassTableController.onReady (package:watermeter/controller/classtable_controller.dart:126)
<asynchronous suspension>
}
强制清缓重启后的报错信息,手动设置时间到有考试的那天
[exception] | 22:20:01 957ms | Instance of 'NotFetchLibraryException' StackTrace: #0 LibrarySession.initSession (package:watermeter/repository/xidian_ids/library_session.dart:220) <asynchronous suspension> #1 LibrarySession.getBorrowList (package:watermeter/repository/xidian_ids/library_session.dart:112) <asynchronous suspension> #2 Future.wait.<anonymous closure> (dart:async/future.dart:525) <asynchronous suspension> #3 update.<anonymous closure> (package:watermeter/page/homepage/refresh.dart:100) <asynchronous suspension> #4 Future.wait.<anonymous closure> (dart:async/future.dart:525) <asynchronous suspension> #5 update (package:watermeter/page/homepage/refresh.dart:82) <asynchronous suspension> #6 _HomePageMasterState._loginAsync (package:watermeter/page/homepage/home.dart:96) <asynchronous suspension> }[exception] | 22:23:07 76ms | Instance of 'NotFetchLibraryException' StackTrace: #0 LibrarySession.initSession (package:watermeter/repository/xidian_ids/library_session.dart:220) <asynchronous suspension> #1 LibrarySession.getBorrowList (package:watermeter/repository/xidian_ids/library_session.dart:112) <asynchronous suspension> #2 Future.wait.<anonymous closure> (dart:async/future.dart:525) <asynchronous suspension> #3 update.<anonymous closure> (package:watermeter/page/homepage/refresh.dart:100) <asynchronous suspension> #4 Future.wait.<anonymous closure> (dart:async/future.dart:525) <asynchronous suspension> #5 update (package:watermeter/page/homepage/refresh.dart:82) <asynchronous suspension> #6 _HomePageMasterState._loginAsync (package:watermeter/page/homepage/home.dart:96) <asynchronous suspension> }DioException [request cancelled]: The request was manually cancelled by the user. Error: Offline mode, all ids function unuseable. StackTrace: #0 DioMixin.fetch (package:dio/src/dio_mixin.dart:523) <asynchronous suspension> #1 SysjSession.getDataFromSysj (package:watermeter/repository/xidian_ids/sysj_session.dart:28) <asynchronous suspension> #2 ExperimentController.getOtherExperiment (package:watermeter/controller/experiment_controller.dart:359) <asynchronous suspension> #3 Future.wait.<anonymous closure> (dart:async/future.dart:525) <asynchronous suspension> #4 ExperimentController.get.<anonymous closure> (package:watermeter/controller/experiment_controller.dart:465) <asynchronous suspension> #5 ExperimentController.get (package:watermeter/controller/experiment_controller.dart:465) <asynchronous suspension> }DioException [request cancelled]: The request was manually cancelled by the user. Error: Offline mode, all ids function unuseable. StackTrace: #0 DioMixin.fetch (package:dio/src/dio_mixin.dart:523) <asynchronous suspension> #1 EhallSession.isLoggedIn (package:watermeter/repository/xidian_ids/ehall_session.dart:36) <asynchronous suspension> #2 EhallSession.useApp.<anonymous closure> (package:watermeter/repository/xidian_ids/ehall_session.dart:78) <asynchronous suspension> #3 BasicLock.synchronized (package:synchronized/src/basic_lock.dart:38) <asynchronous suspension> #4 EhallSession.useApp (package:watermeter/repository/xidian_ids/ehall_session.dart:73) <asynchronous suspension> #5 ExamSession.getExamEhall (package:watermeter/repository/xidian_ids/exam_session.dart:71) <asynchronous suspension> #6 ExamController.get (package:watermeter/controller/exam_controller.dart:127) <asynchronous suspension> #7 ExamController.onReady (package:watermeter/controller/exam_controller.dart:113) <asynchronous suspension> }DioException [request cancelled]: The request was manually cancelled by the user. Error: Offline mode, all ids function unuseable. StackTrace: #0 DioMixin.fetch (package:dio/src/dio_mixin.dart:523) <asynchronous suspension> #1 EhallSession.isLoggedIn (package:watermeter/repository/xidian_ids/ehall_session.dart:36) <asynchronous suspension> #2 EhallSession.useApp.<anonymous closure> (package:watermeter/repository/xidian_ids/ehall_session.dart:78) <asynchronous suspension> #3 BasicLock.synchronized (package:synchronized/src/basic_lock.dart:38) <asynchronous suspension> #4 EhallSession.useApp (package:watermeter/repository/xidian_ids/ehall_session.dart:73) <asynchronous suspension> #5 ClassTableFile.getEhall (package:watermeter/repository/xidian_ids/classtable_session.dart:286) <asynchronous suspension> #6 ClassTableController.updateClassTable (package:watermeter/controller/classtable_controller.dart:263) <asynchronous suspension> #7 ClassTableController.onReady (package:watermeter/controller/classtable_controller.dart:126) <asynchronous suspension> }
除了图书馆服务访问错误,其他报错跟您描述的问题毫无关系。他们都是初步访问时候说 ehall 没有连接,等待片刻会自行解决。
请提供版本号:希望不是 1.5.3,这是测试版,我对里数据结构有改动。
版本号为 1.5.4+343,但这个问题我记得1.5.2的时候就有,1.5.3+333同样存在
(图中从上到下依次为1.5.3,1.5.4,1.5.2)
明白,请您降级到 1.5.2 ,如果还有问题再看。小程序代码是单独线程运行的,主程序是不可能看到日志的。所以如果还有问题,那就是我这个版本改小部件代码改炸了。
明白,请您降级到 1.5.2 ,如果还有问题再看。小程序代码是单独线程运行的,主程序是不可能看到日志的。所以如果还有问题,那就是我这个版本改小部件代码改炸了。
那行,祝您好运
明白,请您降级到 1.5.2 ,如果还有问题再看。小程序代码是单独线程运行的,主程序是不可能看到日志的。所以如果还有问题,那就是我这个版本改小部件代码改炸了。
那行,祝您好运
先别走,降级到 1.5.2 还有错误吗?
明白,请您降级到 1.5.2 ,如果还有问题再看。小程序代码是单独线程运行的,主程序是不可能看到日志的。所以如果还有问题,那就是我这个版本改小部件代码改炸了。
那行,祝您好运
先别走,降级到 1.5.2 还有错误吗?
有的,上面那个图片里有的,叫PDA的那个就是1.5.2版本的
那只能下个版本修了,我尽快吧…… 如果您还想提供更多信息,只能将手机搞进 adb 查看日志了
我怀疑问题出在这里了。
后面两个Controller没有调用更新方法
我觉得应该统一管理小组件更新,在所有相关数据都准备好之后,只调用一次 HomeWidget.updateWidget(),避免异步导致的数据竞争。
苹果的需要转存到公共区域,安卓的小部件直接读存储地点就行了。我高度怀疑这位的数据可能有某些地方,我的小程序会无法反序列化。接下来我需要写一个提示器,提示三大数据来源是否成功加载。
@SolitaryDream-X 您的考试信息是不是包括了空的座位号?
有个 ios 小部件报错了,错误如下:
valueNotFound (Swift.String,
Swift.DecodingError.Context (codingPath
: [CodingKeys(stringValue:
"subject", intValue: nil),
_CodingKey(stringValue: "Index O",
intValue: 0), CodingKeys(stringValue:
"seat"
" intValue: nil)], debugDescription:
"Cannot get value of type String -- found
null value instead",
", underlyingError: nil))
AI 告诉我是考试信息的座位号没有解析成功,根据安卓小部件逻辑是派生自苹果的,很有可能问题在这里。
@SolitaryDream-X 您的考试信息是不是包括了空的座位号?
有个 ios 小部件报错了,错误如下:
valueNotFound (Swift.String, Swift.DecodingError.Context (codingPath : [CodingKeys(stringValue: "subject", intValue: nil), _CodingKey(stringValue: "Index O", intValue: 0), CodingKeys(stringValue: "seat" " intValue: nil)], debugDescription: "Cannot get value of type String -- found null value instead", ", underlyingError: nil))AI 告诉我是考试信息的座位号没有解析成功,根据安卓小部件逻辑是派生自苹果的,很有可能问题在这里。
很遗憾并不是空的座位号,似乎所有的考试信息都是齐全的(考试名称,时间,教室,座位号)