解析遗憾的是,应用程序已停止在后台继续工作

时间:2014-10-13 08:03:37

标签: java android parsing

我的Android应用程序在后台持续显示警告“不幸的是应用程序已停止工作”。我在逻辑上得到的唯一错误是下面的错误,它是关于Parse(parse.com)我用来从互联网数据库获取一些信息。

我无法理解这是什么问题。即使因为问题似乎是在解析库中而不是在我的代码中

,我已经迷失了它

Logcat输出:

10-13 03:50:54.856: E/ParseCommandCache(2568): Failed to run command.
10-13 03:50:54.856: E/ParseCommandCache(2568):
com.parse.ParseException: object not found for update 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.ParseCommand.onPostExecute(ParseCommand.java:399) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.ParseRequest$5.then(ParseRequest.java:314) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.ParseRequest$5.then(ParseRequest.java:311) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$11.run(Task.java:481) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task$ImmediateExecutor.execute(Task.java:673) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.completeAfterTask(Task.java:477) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task.continueWithTask(Task.java:353) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task.continueWithTask(Task.java:364) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$9.then(Task.java:410)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$9.then(Task.java:402) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$11.run(Task.java:481)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$ImmediateExecutor.execute(Task.java:673) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.completeAfterTask(Task.java:477) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task.access$400(Task.java:22)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$7.then(Task.java:346) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$7.then(Task.java:343)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.runContinuations(Task.java:510) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task.access$800(Task.java:22)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$TaskCompletionSource.trySetResult(Task.java:565) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$TaskCompletionSource.setResult(Task.java:599) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$11$1.then(Task.java:493) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$11$1.then(Task.java:485)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$10.run(Task.java:448) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task$ImmediateExecutor.execute(Task.java:673) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.completeImmediately(Task.java:444) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task.access$300(Task.java:22)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$6.then(Task.java:311) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$6.then(Task.java:308)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.runContinuations(Task.java:510) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task.access$800(Task.java:22)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$TaskCompletionSource.trySetResult(Task.java:565) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$TaskCompletionSource.setResult(Task.java:599) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$11$1.then(Task.java:493) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$11$1.then(Task.java:485)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$10.run(Task.java:448) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task$ImmediateExecutor.execute(Task.java:673) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.completeImmediately(Task.java:444) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task.access$300(Task.java:22)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$6.then(Task.java:311) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$6.then(Task.java:308)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.runContinuations(Task.java:510) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task.access$800(Task.java:22)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$TaskCompletionSource.trySetResult(Task.java:565) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$TaskCompletionSource.setResult(Task.java:599) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$11$1.then(Task.java:493) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$11$1.then(Task.java:485)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$10.run(Task.java:448) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task$ImmediateExecutor.execute(Task.java:673) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.completeImmediately(Task.java:444) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task.continueWith(Task.java:318) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task.continueWith(Task.java:329) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$11.run(Task.java:485)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$ImmediateExecutor.execute(Task.java:673) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.completeAfterTask(Task.java:477) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task.access$400(Task.java:22)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$7.then(Task.java:346) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$7.then(Task.java:343)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.runContinuations(Task.java:510) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task.access$800(Task.java:22)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$TaskCompletionSource.trySetResult(Task.java:565) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$TaskCompletionSource.setResult(Task.java:599) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$11$1.then(Task.java:493) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$11$1.then(Task.java:485)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task$10.run(Task.java:448) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task$ImmediateExecutor.execute(Task.java:673) 10-13
03:50:54.856: E/ParseCommandCache(2568):   at
com.parse.Task.completeImmediately(Task.java:444) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task.continueWith(Task.java:318) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at
com.parse.Task.continueWith(Task.java:329) 10-13 03:50:54.856:
E/ParseCommandCache(2568):  at com.parse.Task$11.run(Task.java:485)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-13 03:50:54.856: E/ParseCommandCache(2568):   at
java.lang.Thread.run(Thread.java:841)

编辑:我发现问题出现在以下代码中,因为注释try / catch块时不会出现问题。希望有人可以帮助我。

这是我的应用程序类代码:

    package com.alain.ama.caccamo;

import com.crashlytics.android.Crashlytics;
import com.parse.Parse;
import com.parse.ParseACL;
import com.parse.ParseInstallation;
import com.parse.ParseUser;
import android.app.Application;

public class AmaCaccamoApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        Crashlytics.start(this);

       try {            
        // / Add your initialization code here
        Parse.initialize(this, "TM918DSLjSCTe61lDTqwzxGRYe23************", "a5wmBOm7ZKBJfcBAjHW2C1e1Q7Rr************");

        ParseUser.enableAutomaticUser();
        ParseACL defaultACL = new ParseACL();

        // If you would like all objects to be private by default, remove this
        // line.
        defaultACL.setPublicReadAccess(true);

        ParseACL.setDefaultACL(defaultACL, true);
        ParseInstallation.getCurrentInstallation().saveInBackground();


        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

1 个答案:

答案 0 :(得分:0)

我有同样的问题。检查是否为空。 请参阅注释代码:

   private void processPush(Context context, Intent intent) {
    String msg = "";
    try {
        // Added null check here
        if (intent.getExtras().getString("com.parse.Data") !=null) {
            JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
            Iterator itr = json.keys();
            while (itr.hasNext()) {
                String key = (String) itr.next();
                Log.d(TAG, "..." + key + " => " + json.getString(key));
                if (key.equals("customdata")) {
                    msg = json.getString(key);
                }
            }
        }
    } catch (JSONException e) {
        Log.d(TAG, "JSONException: " + e.getMessage());
    }
    generateNotification(context, msg);
}