• 新浪微博:
  • 腾讯微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.2.6
软件大小:62.5M
更新时间:09-27

按键精灵iOS版
立即下载

软件版本:1.3.1
软件大小:29.2M
更新时间:09-29

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
发新话题 回复该主题

[BUG反馈] ReadUIConfig界面執行數分鐘後讀出Null [复制链接]

1#
3.1.7版
寫了一個腳本使用READUIConfig來讀取自訂的設定值,根據遊戲需求情況改設定。
但是最近經常出現一個狀況,就是腳本跑到一半,所有已儲存的UIConfig設定值會自動回復為預設值,
使讀取值全部變為null,運作出錯。目前找不到原因。

已知MobileAnjian\Script會儲存ui界面檔,
人為設定的值似乎是儲存在MobileAnjian\UIConfig下面

目前大概每個script執行個一兩小時就會發生一次,無法完全放飛雙手。也無法從程式裏去預防。

最后编辑AngryRaw 最后编辑于 2017-01-10 02:01:52
2#

目前觀察好像是其中單一變量的字符長度大於256造成的,還在觀察中。

3#

回复 2楼AngryRaw的帖子

發現不是其中一個變量字符長度的問題,改掉還是會發生問題。

自己會持續debug,也希望官方開發者有個說法。

4#

目前檢查發現有個Thread每隔一秒就會讀一次ReadUIConfig,有可能是因此造成系統負擔而變成null。
奇怪的是以前都沒有因此出問題,怎會突然有一天就變成問題?
暫時改掉每秒讀一次的寫法,繼續觀察。

5#

最新的心得是打算投降了。
大量刪減了code來debug ,但問題好像越來越嚴重,幾乎每五分鐘就會因為ReadUIconfig的結果變成null而中止腳本。

發生null的時間點是隨機亂數。
有時候前一個指令讀得很正常,
下一個指令就突然跳成null,令人丈二金剛摸不著頭腦。
如果忽略null 的結果繼續往下執行,偶而會有讀取成功的時候。
換句話說,
ReadUIConfig不是一個穩定的函數,我猜可能需要放個Delay去讓它慢慢讀取正確的值,然後也盡量定義一些預設值以防ReadUIConfig讀出null。

目前的做法就是回歸原始,盡量不用ReadUIConfig去做設定,大量的用程式碼本身來寫設定檔。
很不方便,但在官方改版解決問題前只能這樣了。

最后编辑AngryRaw 最后编辑于 2017-01-10 00:02:33
6#

整個腳本複製到一個新的檔名再重新編輯設定,似乎穩定下來了。持續觀察中。

事後證明這個方法沒有用。過了幾分鐘又開始發作了。

最后编辑AngryRaw 最后编辑于 2017-01-10 11:23:09
7#

當桌機用遠端控制手機時,用手機的音量減小鈕中斷腳本,再用同樣的手機的音量減小鈕去執行腳本,所有的ReadUIConfig就會回復腳本預設值,使用者自訂過的設定都不見了。

8#

其實ReadUIConfig讀出Null跟ReadUIConfig的使用者自訂值回歸預設值,兩件事是併發的。

當程式讀到null的時候再重啟腳本,就會發現讀出值全都回復為預設。

9#

回復3.1.6版會導致更多bug

例如AppisFront()永遠只返回false

10#

決定發動一個大工程,寫一個Initialize()一開始就把所有的ReadUIConfig都用writeconfig寫進系統檔裏,然後之後的整個運作過程再也不碰ReadUIConfig。

當然前提是希望WriteConfig()和ReadConfig()的穩定度能值得信任。不然按鍵精靈還能用嗎?

11#

改用readconfig後一切穩定

12#

目前腳本唯一會呼叫ReadUIConfig的動作只有在程序一開始的時候,執行一個遞迴,把所有ReadUIConfig的變數都寫入WriteConfig中。
之後所有的運行都不會再用到ReadUIConfig。

結果腳本穩定運行了兩天,ReadUIconfig裏面值也沒有再發生回復預設值的現象。
由此可以證明,ReadUIConfig不穩定的原因是來自於大量頻繁的呼叫。中間可能有memory leak的問題,請官方開發人員注意。

13#

可以加我一下QQ1956497362 提供我一下可以出现问题的最简化脚本吗 因为我这边尝试了一下 并没有出现你说的问题 readui阻塞命令,脚本的多线程其实只是模拟的多线程并不是真正的 因此也是先后顺序的 应该不存在频繁读取会出错的情况 恩 可以QQ联系一下我吗

123123
14#

這種隨機出現的bug,再現率很難模擬。嚴重的時候每三五秒就發生一次。有時候調整一下覺得穩了,二十分鐘後又開始發作。
我覺得真正需要的工具是一個腳本以外的log tracing,這樣才能連記憶體發生什麼狀況都記錄下來。

15#

以Sys.AppIsFront()為例,
如果每300ms遞迴檢查一次,大概幾分鐘就會出錯一次回傳null
如果改成每500ms遞迴檢查一次,一天頂多出錯一次。

发新话题 回复该主题