2014-09-06 4 views
0

В моем приложении Android я использую библиотеку разбора, и я получаю StackOverflowError.No конкретный триггер, который я могу найти для него. Случается случайно. Иногда это случается, иногда нет.StackOverflowError, используя библиотеку parse.com

Вот моя трассировка стека.

java.lang.StackOverflowError 
     at java.lang.ref.FinalizerReference.add(FinalizerReference.java:54) 
     at java.security.MessageDigestSpi.<init>(MessageDigestSpi.java:30) 
     at java.security.MessageDigest.<init>(MessageDigest.java:69) 
     at com.android.org.conscrypt.OpenSSLMessageDigestJDK.<init>(OpenSSLMessageDigestJDK.java:53) 
     at com.android.org.conscrypt.OpenSSLMessageDigestJDK.<init>(OpenSSLMessageDigestJDK.java:25) 
     at com.android.org.conscrypt.OpenSSLMessageDigestJDK$MD5.<init>(OpenSSLMessageDigestJDK.java:119) 
     at java.lang.Class.newInstanceImpl(Native Method) 
     at java.lang.Class.newInstance(Class.java:1208) 
     at java.security.Provider$Service.newInstance(Provider.java:998) 
     at org.apache.harmony.security.fortress.Engine.getInstance(Engine.java:155) 
     at java.security.MessageDigest.getInstance(MessageDigest.java:91) 
     at com.parse.codec.digest.DigestUtils.getDigest(DigestUtils.java:88) 
     at com.parse.codec.digest.DigestUtils.getMd5Digest(DigestUtils.java:102) 
     at com.parse.codec.digest.DigestUtils.md5(DigestUtils.java:166) 
     at com.parse.codec.digest.DigestUtils.md5(DigestUtils.java:191) 
     at com.parse.codec.digest.DigestUtils.md5Hex(DigestUtils.java:227) 
     at com.parse.ParseJSONCacheItem.<init>(ParseJSONCacheItem.java:16) 
     at com.parse.ParseObject.checkForChangesToMutableContainer(ParseObject.java:1074) 
     at com.parse.ParseObject.checkForChangesToMutableContainers(ParseObject.java:1096) 
     at com.parse.ParseObject.isDirty(ParseObject.java:997) 
     at com.parse.ParseObject.isDirty(ParseObject.java:992) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1178) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1174) 
     at com.parse.ParseObject.hasDirtyChildren(ParseObject.java:980) 
     at com.parse.ParseObject.isDirty(ParseObject.java:998) 
     at com.parse.ParseUser.isDirty(ParseUser.java:95) 
     at com.parse.ParseObject.isDirty(ParseObject.java:992) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1178) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1174) 
     at com.parse.ParseObject.hasDirtyChildren(ParseObject.java:980) 
     at com.parse.ParseObject.isDirty(ParseObject.java:998) 
     at com.parse.ParseObject.isDirty(ParseObject.java:992) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1178) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1174) 
     at com.parse.ParseObject.hasDirtyChildren(ParseObject.java:980) 
     at com.parse.ParseObject.isDirty(ParseObject.java:998) 
     at com.parse.ParseUser.isDirty(ParseUser.java:95) 
     at com.parse.ParseObject.isDirty(ParseObject.java:992) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1178) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1174) 
     at com.parse.ParseObject.hasDirtyChildren(ParseObject.java:980) 
     at com.parse.ParseObject.isDirty(ParseObject.java:998) 
     at com.parse.ParseObject.isDirty(ParseObject.java:992) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1178) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1174) 
     at com.parse.ParseObject.hasDirtyChildren(ParseObject.java:980) 
     at com.parse.ParseObject.isDirty(ParseObject.java:998) 
     at com.parse.ParseUser.isDirty(ParseUser.java:95) 
     at com.parse.ParseObject.isDirty(ParseObject.java:992) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1178) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1174) 
     at com.parse.ParseObject.hasDirtyChildren(ParseObject.java:980) 
     at com.parse.ParseObject.isDirty(ParseObject.java:998) 
     at com.parse.ParseObject.isDirty(ParseObject.java:992) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1178) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1174) 
     at com.parse.ParseObject.hasDirtyChildren(ParseObject.java:980) 
     at com.parse.ParseObject.isDirty(ParseObject.java:998) 
     at com.parse.ParseUser.isDirty(ParseUser.java:95) 
     at com.parse.ParseObject.isDirty(ParseObject.java:992) 
     at com.parse.ParseObject.findUnsavedChildren(ParseObject.java:1178) 

Как я сказал, изо всех сил старался, но не смог найти то, что вызывает it.any помощь от парсеров будет

было оценено
+0

Добавьте некоторые коды/точки останова в свой код, чтобы найти, в какой момент появляется ошибка. Трассировка стека здесь не нужна без кода. StackOverflowErrors часто вызваны рекурсивными вызовами метода, который не прерывается/заканчивается; есть ли в вашем коде какие-либо рекурсивно называемые методы? – ataulm

+0

Ну, я знаю, что это такое. И попробовал журналы и т. Д., Но это происходит, как только открывается приложение. Один из моих кодов вызывается как ясный из трассировки стека. В любом случае я делаю некоторые царапины головы. Будет сообщение, когда я что-то найду. благодаря – Mukul

ответ

0

Вопрос был, что я проверял для анонимного ссылку счета прямо после того как пользователь , тогда как в фоновом режиме задача сохранения выполнялась с текущим пользователем. Это заставило библиотеку разбора сходить с ума. Так что я сделал, это использовать обратный вызов для сохранения и выполнять всю работу после завершения сохранения.