解析不幸的是应用程序已经停止在后台连续工作 [英] Parse Unfortunately Application has stopped working continuously on background

查看:248
本文介绍了解析不幸的是应用程序已经停止在后台连续工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Andr​​oid应用程序不断显示警报不幸的是应用程序已停止工作在后台的时候。我的逻辑得到的唯一的错误是下面的一个,它是关于解析(parse.com),我用它来获得互联网数据库的一些信息。

我不明白是什么问题。我从它失去了天,甚至因为这个问题似乎是解析库中,而不是在我的code

logcat的输出:

  3月10日至13日:50:54.856:E / ParseCommandCache(2568):无法运行命令。
三月10日至13日:50:54.856:E / ParseCommandCache(2568):
com.parse.ParseException:找不到对象为10-13更新
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.ParseCommand.onPostExecute(ParseCommand.java:399)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.ParseRequest $ 5.then(ParseRequest.java:314)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.ParseRequest $ 5.then(ParseRequest.java:311)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 11.run(Task.java:481)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task $ ImmediateExecutor.execute(Task.java:673)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.completeAfterTask(Task.java:477)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task.continueWithTask(Task.java:353)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task.continueWithTask(Task.java:364)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ 9.then(Task.java:410)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 9.then(Task.java:402)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ 11.run(Task.java:481)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ ImmediateExecutor.execute(Task.java:673)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.completeAfterTask(Task.java:477)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task.access $ 400(Task.java:22)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 7.then(Task.java:346)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ 7.then(Task.java:343)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.runContinuations(Task.java:510)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task.access $ 800(Task.java:22)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ TaskCompletionSource.trySetResult(Task.java:565)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ TaskCompletionSource.setResult(Task.java:599)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ $ 11 1.then(Task.java:493)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ $ 11 1.then(Task.java:485)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 10.run(Task.java:448)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task $ ImmediateExecutor.execute(Task.java:673)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.completeImmediately(Task.java:444)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task.access $ 300(Task.java:22)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 6.then(Task.java:311)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ 6.then(Task.java:308)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.runContinuations(Task.java:510)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task.access $ 800(Task.java:22)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ TaskCompletionSource.trySetResult(Task.java:565)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ TaskCompletionSource.setResult(Task.java:599)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ $ 11 1.then(Task.java:493)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ $ 11 1.then(Task.java:485)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 10.run(Task.java:448)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task $ ImmediateExecutor.execute(Task.java:673)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.completeImmediately(Task.java:444)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task.access $ 300(Task.java:22)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 6.then(Task.java:311)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ 6.then(Task.java:308)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.runContinuations(Task.java:510)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task.access $ 800(Task.java:22)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ TaskCompletionSource.trySetResult(Task.java:565)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ TaskCompletionSource.setResult(Task.java:599)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ $ 11 1.then(Task.java:493)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ $ 11 1.then(Task.java:485)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 10.run(Task.java:448)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task $ ImmediateExecutor.execute(Task.java:673)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.completeImmediately(Task.java:444)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task.continueWith(Task.java:318)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task.continueWith(Task.java:329)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ 11.run(Task.java:485)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ ImmediateExecutor.execute(Task.java:673)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.completeAfterTask(Task.java:477)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task.access $ 400(Task.java:22)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 7.then(Task.java:346)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ 7.then(Task.java:343)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.runContinuations(Task.java:510)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task.access $ 800(Task.java:22)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ TaskCompletionSource.trySetResult(Task.java:565)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ TaskCompletionSource.setResult(Task.java:599)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ $ 11 1.then(Task.java:493)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ $ 11 1.then(Task.java:485)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task $ 10.run(Task.java:448)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task $ ImmediateExecutor.execute(Task.java:673)10-13
03:50:54.856:E / ParseCommandCache(2568):在
com.parse.Task.completeImmediately(Task.java:444)三月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task.continueWith(Task.java:318)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在
com.parse.Task.continueWith(Task.java:329)3月10日至13日:50:54.856:
E / ParseCommandCache(2568):在com.parse.Task $ 11.run(Task.java:485)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587)
三月10日至13日:50:54.856:E / ParseCommandCache(2568):在
java.lang.Thread.run(Thread.java:841)

编辑:我发现,问题出在以下code,因为评论的try / catch块不会出现问题。希望有人能帮助我。

下面是我的应用程序类code:

 包com.alain.ama.caccamo;进口com.crashlytics.android.Crashlytics;
进口com.parse.Parse;
进口com.parse.ParseACL;
进口com.parse.ParseInstallation;
进口com.parse.ParseUser;
进口android.app.Application;公共类AmaCaccamoApplication扩展应用{    @覆盖
    公共无效的onCreate(){
        super.onCreate();        Crashlytics.start(本);       尝试{
        // /添加您的初始code在这里
        Parse.initialize(这一点,TM918DSLjSCTe61lDTqwzxGRYe23 ************,a5wmBOm7ZKBJfcBAjHW2C1e1Q7Rr ************);        ParseUser.enableAutomaticUser();
        ParseACL defaultACL =新ParseACL();        //如果你想所有对象是默认私人,删除此
        //线。
        defaultACL.setPublicReadAccess(真);        ParseACL.setDefaultACL(defaultACL,真);
        。ParseInstallation.getCurrentInstallation()saveInBackground();
        }赶上(例外五){
            e.printStackTrace();
        }
    }}


解决方案

我有/有同样的问题。检查空。
见注释code:

 私人无效processPush(上下文的背景下,意图意图){
    弦乐味精=;
    尝试{
        //添加空检查这里
        如果(intent.getExtras()的getString(com.parse.Data)!= NULL){
            JSONObject的JSON =新的JSONObject(intent.getExtras()的getString(com.parse.Data)。);
            迭代器ITR = json.keys();
            而(itr.hasNext()){
                字符串键=(字符串)itr.next();
                Log.d(TAG,...+键+=>中+ json.getString(键));
                如果(key.equals(的CustomData)){
                    味精= json.getString(键);
                }
            }
        }
    }赶上(JSONException E){
        Log.d(TAGJSONException:+ e.getMessage());
    }
    generateNotification(背景下,味精);
}

My Android Application continuously shows the alert "Unfortunately Application has stopped working" when in background. The only error I get in logical is the one below and it is about Parse (parse.com) that I use to get some info from internet database.

I cannot understand what is the problem. I'm lost from days with it even because the problem seems to be inside the parse library and not in my code

Logcat output:

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)

EDIT: I found that the problem is in the following code because commenting the try/catch block the problem does not appears. Hope someone can help me.

Here is my application class code:

    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();
        }
    }

}

解决方案

I have/had the same problem. Check for null. See commented code:

   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);
}

这篇关于解析不幸的是应用程序已经停止在后台连续工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆