繁体   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