android - 执行 Parse.initialize 时出现 java.util.ConcurrentModificationException(这

标签 android parse-platform

我有很多用户向游戏控制台报告此崩溃。我测试了它,它只是有时出现。崩溃发生在我在 ParseApplication 类中的这一行中,它扩展了 Application 类并且应该在其他一切之前调用它不是吗?

这是它崩溃的地方:

 Parse.initialize(this, "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXXXXXXXXX");

这就是崩溃

java.lang.RuntimeException: Unable to create application com.hour.chat.ParseApplication: java.util.ConcurrentModificationException
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4411)
at android.app.ActivityThread.access$1500(ActivityThread.java:145)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5081)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedList$LinkIterator.next(LinkedList.java:124)
at com.parse.ParseObject.mergeREST(ParseObject.java:928)
at com.parse.ParseUser.mergeREST(ParseUser.java:285)
at com.parse.OfflineStore$13$2.then(OfflineStore.java:765)
at com.parse.OfflineStore$13$2.then(OfflineStore.java:762)
at com.parse.Task$10.run(Task.java:448)
at com.parse.Task$ImmediateExecutor.execute(Task.java:673)
at com.parse.Task.completeImmediately(Task.java:444)
at com.parse.Task.continueWith(Task.java:318)
at com.parse.Task.continueWith(Task.java:329)
at com.parse.Task$8.then(Task.java:381)
at com.parse.Task$8.then(Task.java:373)
at com.parse.Task$11.run(Task.java:481)
at com.parse.Task$ImmediateExecutor.execute(Task.java:673)
at com.parse.Task.completeAfterTask(Task.java:477)
at com.parse.Task.continueWithTask(Task.java:353)
at com.parse.Task.onSuccess(Task.java:373)
at com.parse.Task.onSuccess(Task.java:393)
at com.parse.OfflineStore$13.then(OfflineStore.java:762)
at com.parse.OfflineStore$13.then(OfflineStore.java:721)
at com.parse.Task$11.run(Task.java:481)
at com.parse.Task$ImmediateExecutor.execute(Task.java:673)
at com.parse.Task.completeAfterTask(Task.java:477)
at com.parse.Task.continueWithTask(Task.java:353)
at com.parse.Task.continueWithTask(Task.java:364)
at com.parse.Task$9.then(Task.java:410)
at com.parse.Task$9.then(Task.java:402)
at com.parse.Task$11.run(Task.java:481)
at com.parse.Task$ImmediateExecutor.execute(Task.java:673)
at com.parse.Task.completeAfterTask(Task.java:477)
at com.parse.Task.access$400(Task.java:22)
at com.parse.Task$7.then(Task.java:346)
at com.parse.Task$7.then(Task.java:343)
at com.parse.Task.runContinuations(Task.java:510)
at com.parse.Task.access$800(Task.java:22)
at com.parse.Task$TaskCompletionSource.trySetResult(Task.java:565)
at com.parse.Task$TaskCompletionSource.setResult(Task.java:599)
at com.parse.Task$11$1.then(Task.java:493)
at com.parse.Task$11$1.then(Task.java:485)
at com.parse.Task$10.run(Task.java:448)
at com.parse.Task$ImmediateExecutor.execute(Task.java:673)
at com.parse.Task.completeImmediately(Task.java:444)
at com.parse.Task.continueWith(Task.java:318)
at com.parse.Task.continueWith(Task.java:329)
at com.parse.Task$11.run(Task.java:485)
at com.parse.Task$ImmediateExecutor.execute(Task.java:673)
at com.parse.Task.completeAfterTask(Task.java:477)
at com.parse.Task.access$400(Task.java:22)
at com.parse.Task$7.then(Task.java:346)
at com.parse.Task$7.then(Task.java:343)
at com.parse.Task.runContinuations(Task.java:510)
at com.parse.Task.access$800(Task.java:22)
at com.parse.Task$TaskCompletionSource.trySetResult(Task.java:565)
at com.parse.Task$TaskCompletionSource.setResult(Task.java:599)
at com.parse.Task$11$1.then(Task.java:493)
at com.parse.Task$11$1.then(Task.java:485)
at com.parse.Task$10.run(Task.java:448)
at com.parse.Task$ImmediateExecutor.execute(Task.java:673)
at com.parse.Task.completeImmediately(Task.java:444)
at com.parse.Task.continueWith(Task.java:318)
at com.parse.Task.continueWith(Task.java:329)
at com.parse.Task$11.run(Task.java:485)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)

最佳答案

由于这个线程已有 4 个月了,让我们先更新一些东西;

1) 更新到最新的 SDK,您可以在 Parse 执行此操作

2) 一旦您的项目中有了 SDK,请确保您已在应用程序级别正确初始化您的 key ,如下所示:

public class YourAppName extends Application {
 @Override
    public void onCreate() {
        super.onCreate();

     Parse.initialize(this, "KEY_1", "KEY_2);

    }

}

3) 确保在 AndroidManifest.xml 中定义如下:

<application
        android:name=".YourAppName" <!--This is the important part-->
        android:allowBackup="true"
        android:icon="@drawable/launcher_icon"
        android:label="@string/app_name"
        android:theme="@style/Theme.MyTheme">

...

希望它能解决您的问题。

关于android - 执行 Parse.initialize 时出现 java.util.ConcurrentModificationException(这,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25005845/

相关文章:

Javascript 错误函数将错误消息记录为 'undefined'

ios - 检索评论数

javascript - 如何在 PHP 中访问我的 Javascript 变量?

android - AOSP项目附加流程

ios - 查询解析表中的所有数据并放入数组中

android - 单击按钮后,从recyclerview中删除项目-Kotlin MVVM Firestore

java - 用 Java 确定非接触式智能卡的电源要求。

ios - 检查用户是否有效 Parse (Swift)

android - 如何在android中索引媒体文件以进行快速搜索

android - 用户10056和当前进程都没有android.permission.MODIFY_PHONE_STATE