Quindi ho seguito le istruzioni dalla Guida Rapida dal sito Web Parse SDK. L'app funziona bene la prima volta. Ma quando minimizzo l'app ed eseguo di nuovo dal commutatore di attività, la forzatura si chiude.Errore Parse: Parse # enableLocalDatastore (Context) `deve essere richiamato prima di` Parse # initialize (Context) `
L'errore non ha alcun senso per 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());
}
Ho lo stesso problema. Puoi spiegare come metterlo in una classe separata potrebbe influenzare il problema? – YumeApps
Quando si inserisce l'inizializzazione in onCreate() di un'attività principale, questo funziona fintanto che questa attività suCreate() non viene richiamata. Il post sopra funziona non inserendo l'inizializzazione una tantum nell'Attività, ma nell'Applicazione che ha un ciclo di vita diverso (come mostrato qui: https://tinyurl.com/q4bqoex) e verrà chiamato una sola volta. (Lo stesso effetto potrebbe essere raggiunto usando un modello simile al singleton). –
Penso che questa non sia una risposta risolutiva. Ho ottenuto lo stesso errore anche se ho abilitatoLocalDatastore e inizializzo (questo, "xxx", "xxx") nella funzione OnCreate nell'app – P1x