簡體   English   中英

更新應用程序時出現SharedPreferences錯誤

[英]SharedPreferences error when updating app

更新我的應用程序時,只會出現此錯誤。

java.lang.StackOverflowError

at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:354) at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146) at it.veneto.arpa.controller.Controller.verifyBulletin(Controller.java:377) at it.veneto.arpa.controller.Controller.retrieveBulletin(Controller.java:509) at it.veneto.arpa.controller.Controller.verifyBulletin(Controller.java:394) at it.veneto.arpa.controller.Controller.retrieveBulletin(Controller.java:509) at it.veneto.arpa.controller.Controller.verifyBulletin(Controller.java:394) at it.veneto.arpa.controller.Controller.retrieveBulletin(Controller.java:509) at it.veneto.arpa.controller.Controller.verifyBulletin(Controller.java:394)

在377行上有:

SharedPreferences prefs = context.getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);

如果要連接到服務器(我假設,因為retrieveBulletin法)一遍又一遍,嘗試等待(的Thread.sleep(TIME_OUT))對於一兩秒鍾,然后再試一次。 嘗試次數最多。 假設您已經嘗試了10次,但仍未收到響應或任何有效的響應,請嘗試處理這種情況,而不要永遠嘗試。 如果不這樣做,最終將導致堆棧空間不足,最終導致收到錯誤。

根據您的評論,情況類似-遞歸調用錯誤而沒有處理最壞的情況。

我相信您的verifyBulletinretrieveBulletin正在無限次地互相調用。 確保他們沒有互相呼叫,或者如果對方互相呼叫,則存在結束條件。 如果滿足結束條件,則不要調用其他方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM