解析错误:解析#enableLocalDatastore(上下文)`必须在`解析#初始化(上下文)被调用` [英] Parse Error: Parse#enableLocalDatastore(Context)` must be invoked before `Parse#initialize(Context)`

查看:383
本文介绍了解析错误:解析#enableLocalDatastore(上下文)`必须在`解析#初始化(上下文)被调用`的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我也跟着从快速入门指南说明从解析SDK网站。该应用程序的第一轮运行正常。但是,当我尽量减少应用程序和任务切换再次运行它,它的力量关闭。

该错误不作任何意义,我。 logcat的 -

 八月五日至九日:57:40.611 19419-19419 / com.example.shubhamkanodia.bookmybook E / CrashReporting:ParseCrashReporting为com.example.shubhamkanodia.bookmybook抓到一个RuntimeException异常。大厦的报告。
8月5日至9日:57:40.626 19419-19419 / com.example.shubhamkanodia.bookmybook E / CrashReporting:处理例外崩溃
    java.lang.RuntimeException的:无法启动的活动ComponentInfo{com.example.shubhamkanodia.bookmybook/com.example.shubhamkanodia.bookmybook.MainActivity}: java.lang.IllegalStateException:`解析#enableLocalDatastore(上下文)`之前一定要`解析#初始化(上下文)调用`
            在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
            在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
            在android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3947)
            在android.app.ActivityThread.access $ 900(ActivityThread.java:151)
            在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1309)
            在android.os.Handler.dispatchMessage(Handler.java:102)
            在android.os.Looper.loop(Looper.java:135)
            在android.app.ActivityThread.main(ActivityThread.java:5254)
            在java.lang.reflect.Method.invoke(本机方法)
            在java.lang.reflect.Method.invoke(Method.java:372)
            在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)
            在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     致:java.lang.IllegalStateException:`解析#enableLocalDatastore(上下文)`之前一定要`解析#初始化(上下文)调用`
            在com.parse.Parse.enableLocalDatastore(Parse.java:104)
            在com.example.shubhamkanodia.bookmybook.MainActivity.onCreate(MainActivity.java:21)
            在android.app.Activity.performCreate(Activity.java:5990)
            在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
在android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3947)
在android.app.ActivityThread.access $ 900(ActivityThread.java:151)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1309)
在android.os.Handler.dispatchMessage(Handler.java:102)
在android.os.Looper.loop(Looper.java:135)
在android.app.ActivityThread.main(ActivityThread.java:5254)
在java.lang.reflect.Method.invoke(本机方法)
在java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
 

Mainactivity.java

 保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

        如果(!ParseCrashReporting.isCrashReportingEnabled())
            ParseCrashReporting.enable(本);

        Parse.enableLocalDatastore(本); //它之前已经初始化
        Parse.initialize(这一点,XXX,XXX);
        。ParseInstallation.getCurrentInstallation()saveInBackground();
        ParseAnalytics.trackAppOpenedInBackground(getIntent());
    }
 

解决方案

您可以有做初始化的东西一个单独的类。因此,创建一个类 ParseApplication 扩展应用程序

 公共类ParseApplication扩展应用{

    @覆盖
    公共无效的onCreate(){
        super.onCreate();

        ParseCrashReporting.enable(本);
        Parse.enableLocalDatastore(本);
        Parse.initialize(这一点,XXX,XXX);
    }
  }
 

和在AndroidManifest.xml中添加 ParseApplication 类应用

 <应用
        机器人:名称=com.example.parsetry.ParseApplication//你应该根据你的包替换此
        机器人:allowBackup =真
        机器人:图标=@纹理映射/ ic_launcher
        机器人:标签=@字符串/ APP_NAME
        机器人:主题=@风格/ AppTheme>
        <活动
            机器人:名称=。MainActivity
            机器人:标签=@字符串/ APP_NAME>
            <意向滤光器>
                <作用机器人:名称=android.intent.action.MAIN/>

                <类机器人:名称=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;
    < /用途>
 

So i followed instructions from the Quickstart Guide from the Parse SDK Website. The app runs fine the first time around. But when I minimize the app and run it again from the task switcher, it force closes.

The error doesn't make any sense to me. Logcat -

05-09 08:57:40.611  19419-19419/com.example.shubhamkanodia.bookmybook E/CrashReporting﹕ ParseCrashReporting caught a RuntimeException exception for com.example.shubhamkanodia.bookmybook. Building report.
05-09 08:57:40.626  19419-19419/com.example.shubhamkanodia.bookmybook E/CrashReporting﹕ Handling exception for crash
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shubhamkanodia.bookmybook/com.example.shubhamkanodia.bookmybook.MainActivity}: java.lang.IllegalStateException: `Parse#enableLocalDatastore(Context)` must be invoked before `Parse#initialize(Context)`
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
            at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3947)
            at android.app.ActivityThread.access$900(ActivityThread.java:151)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: java.lang.IllegalStateException: `Parse#enableLocalDatastore(Context)` must be invoked before `Parse#initialize(Context)`
            at com.parse.Parse.enableLocalDatastore(Parse.java:104)
            at com.example.shubhamkanodia.bookmybook.MainActivity.onCreate(MainActivity.java:21)
            at android.app.Activity.performCreate(Activity.java:5990)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
            at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3947)
            at android.app.ActivityThread.access$900(ActivityThread.java:151)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Mainactivity.java

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if(!ParseCrashReporting.isCrashReportingEnabled())
            ParseCrashReporting.enable(this);

        Parse.enableLocalDatastore(this); //Its already before initialize
        Parse.initialize(this, "XXX", "XXX");
        ParseInstallation.getCurrentInstallation().saveInBackground();
        ParseAnalytics.trackAppOpenedInBackground(getIntent());
    }

解决方案

You can have a separate class that do this initialization stuff. So create a class ParseApplication that extends Application.

public class ParseApplication extends Application {

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

        ParseCrashReporting.enable(this);
        Parse.enableLocalDatastore(this);
        Parse.initialize(this, "xxx", "xxx");
    }
  }

And in AndroidManifest.xml, add ParseApplication class to Application

 <application
        android:name="com.example.parsetry.ParseApplication" // you should replace this based on your package
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

这篇关于解析错误:解析#enableLocalDatastore(上下文)`必须在`解析#初始化(上下文)被调用`的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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