java - Caused by : java. lang.IllegalStateException: ParsePlugins is already initialized 问题

标签 java android parse-platform

我退出应用程序,重新启动它,出现异常。

public void onCreate() {
-->here Parse.initialize(this, "adfsfasdfs",
            "asdfadfsdf");
    ParseInstallation.getCurrentInstallation().saveInBackground();
    ParseInstallation.create(identity == null ? "No Identity Set"
            : identity);

异常

07-08 23:27:29.411: E/AndroidRuntime(4889): Caused by: java.lang.IllegalStateException: ParsePlugins is already initialized
07-08 23:27:29.411: E/AndroidRuntime(4889):     at com.parse.ParsePlugins.set(ParsePlugins.java:27)
07-08 23:27:29.411: E/AndroidRuntime(4889):     at com.parse.ParsePlugins.access$200(ParsePlugins.java:11)
07-08 23:27:29.411: E/AndroidRuntime(4889):     at com.parse.ParsePlugins$Android.initialize(ParsePlugins.java:141)
07-08 23:27:29.411: E/AndroidRuntime(4889):     at com.parse.Parse.initialize(Parse.java:178)
07-08 23:27:29.411: E/AndroidRuntime(4889):     at com.mcruiseon.caregiri.Registration.onCreate(Registration.java:98)

list 文件

        <service android:name="com.parse.PushService" />

        <receiver android:name="com.parse.ParseBroadcastReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.parse.ParsePushBroadcastReceiver"
            android:exported="false" >
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>

编辑:

我想知道为什么 Parse 会为此抛出异常。为什么不只是 info 并继续前进。它已初始化,如果我再次初始化它,那有什么大不了的。

解决方案

我已经放弃了 Parse。不喜欢Application方式,只是为了烦人维护。

最佳答案

Parse.initialize() 只应整个应用程序调用一次

ActivityonCreate 函数中调用它可能会导致它被多次初始化,因为 一个 Activity 可以在一个过程中被创建多次应用的生命周期

相反,创建一个Application 类(并将android:name 属性添加到您的应用程序的 list 中)。

应用程序:(注意不是 Activity/服务/接收器)

//Note that this is an android.app.Application class.
public class MyApplication extends android.app.Application {

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

    //This will only be called once in your app's entire lifecycle.
    Parse.initialize(this,
            getResources().getString(R.string.parse_application_id),
            getResources().getString(R.string.parse_client_key));
}

安卓 list :

<application
        android:name=".MyApplication">
        ....
        <activity>
            ....
        </activity>
</application>

关于java - Caused by : java. lang.IllegalStateException: ParsePlugins is already initialized 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31300277/

相关文章:

javascript - 如何在 Android 应用程序的 WebView 中查看 Javascript 错误?

java - 保存我的唯一 ID(字符串)并在稍后重新启动 Java 应用程序时检索它

java - 将多个 dao 注入(inject)到一个服务中

java - Hibernate:无法部署应用程序打包的持久性提供程序

java - 关于java中的异常捕获

android - 在 android 中加载网页失败时隐藏 "WebPage Not available"消息

android - 无法从 TimePicker 获取时间

ios - 核心数据云同步

java - 形成和执行 if 语句的问题

ios - 无法获取Parse block 中NSLog的来源?