解析错误:解析#enableLocalDatastore(上下文)`必须在`解析#初始化(上下文)被调用` [英] Parse Error: Parse#enableLocalDatastore(Context)` must be invoked before `Parse#initialize(Context)`
问题描述
所以我也跟着从快速入门指南说明从解析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屋!