Java 更新应用程序时出现SharedReferences错误

Java 更新应用程序时出现SharedReferences错误,java,android,sharedpreferences,Java,Android,Sharedpreferences,当更新我的应用程序时,我得到这个错误,只是有时候 第377行有: SharedReferences prefs=context.getSharedReferences(首选项,context.MODE\u PRIVATE); 如果您反复连接到服务器(我假设是因为retrieveBulletin方法),请尝试等待(Thread.sleep(TIME_OUT);)一两秒钟再重试。具有最大的尝试次数。比如说,如果你已经尝试了10次,但仍然没有收到回复或任何有效回复,那么尝试处理这种情况,而不是永远

当更新我的应用程序时,我得到这个错误,只是有时候

第377行有:


SharedReferences prefs=context.getSharedReferences(首选项,context.MODE\u PRIVATE);

如果您反复连接到服务器(我假设是因为retrieveBulletin方法),请尝试等待(Thread.sleep(TIME_OUT);)一两秒钟再重试。具有最大的尝试次数。比如说,如果你已经尝试了10次,但仍然没有收到回复或任何有效回复,那么尝试处理这种情况,而不是永远尝试。如果不这样做,这将最终导致堆栈空间不足,最终导致接收到的错误


根据您的评论,类似的情况-不处理最坏情况的错误递归调用。

我相信您的
verifyBulletin
retrieveBulletin
正在无限次地相互调用。确保他们没有互相呼叫,或者如果他们互相呼叫,则存在终止条件。如果满足结束条件,则不要调用另一个方法。

java.lang.StackOverflowerError在递归调用方法时发生。检查任何递归调用。verifyBulletin调用retrieveBulletin调用verifyBulletin调用retrieveBulletin。。。他们在无限的圈子里互相称呼。你需要找出原因并解决这个问题。如果看不到这两种方法,我们就无能为力you@NobuGamesVerifyBulletin调用retrieveBulletin获取保存在SharedReferences上的对象并将其分配给变量。在retrieveBulletin中,如果此变量为null,则会调用verifyBulletin。我想SharedReference在更新时被损坏了。数据丢失或损坏可能会发生,但您的代码必须能够处理这一问题。你能发布这两种方法吗?即使有来自的意外输入,也应该可以修复该问题SharedPreferences@NobuGames泰!如果对象未使用从SharedReferences检索的数据初始化,则我将重新创建SharedReferences数据。
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)