Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果由于解析异常被“后退”按钮破坏,Android应用程序将崩溃_Java_Android_Exception_Parse Platform_Runtime Error - Fatal编程技术网

Java 如果由于解析异常被“后退”按钮破坏,Android应用程序将崩溃

Java 如果由于解析异常被“后退”按钮破坏,Android应用程序将崩溃,java,android,exception,parse-platform,runtime-error,Java,Android,Exception,Parse Platform,Runtime Error,在我的onCreate()方法中,我按照文档中的建议初始化解析库: // Init Parse and enable Local Datastore. ParseObject.registerSubclass(AlertObject.class); Parse.enableLocalDatastore(this); Parse.initialize(this, getString(R.string.parse_app_id), getString(R.string.par

在我的
onCreate()
方法中,我按照文档中的建议初始化解析库:

// Init Parse and enable Local Datastore.
ParseObject.registerSubclass(AlertObject.class);
Parse.enableLocalDatastore(this);
Parse.initialize(this, getString(R.string.parse_app_id),
            getString(R.string.parse_client_key));
但是,如果我按下后退按钮(因此应用程序被停止并销毁),然后从“上次使用的应用程序”菜单中单击应用程序以恢复应用程序,它将崩溃并引发以下异常:

java.lang.RuntimeException: Unable to start activity ComponentInfo{my.app.pro/my.app.MainActivity}: java.lang.IllegalStateException: `Parse#enableLocalDatastore(Context)` must be invoked before `Parse#initialize(Context)`
[...]
本质上,它建议在
initialize()
之前调用
enableLocalDatastore()

当然,如果我重写
onBackPressed()
方法,如下所示:

@Override
public void onBackPressed() {
    moveTaskToBack(true);
}

问题解决了,因为应用程序没有被破坏。但是,为什么在默认行为中会出现该异常?

尝试将解析初始化移动到应用程序类的
onCreate
方法。如果没有,您可以创建一个从
应用程序
扩展的类,例如:

public class AppAplication extends Application {
   @Override
   public void onCreate() {
      super.onCreate();

      ParseObject.registerSubclass(AlertObject.class);
      Parse.enableLocalDatastore(this);
      Parse.initialize(this, getString(R.string.parse_app_id), getString(R.string.parse_client_key));
  }
}
并在
AndroidManifest.xml
文件中写入您正在使用自己的应用程序对象,将
android:name
属性添加到
标记中。例如:

<application
    android:name=".AppApplication"
    >


太好了,它可以工作!非常感谢你!您是否认为最好同时移动应用程序类中的其他库初始化(例如,Facebook、Google API等)?是的,将所有只需执行一次的初始化都移动到那里。我遇到了同样的问题,此解决方案也可以工作。伟大的谢谢!!