アプリを終了して再起動すると、例外が発生します。
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)
マニフェストファイル
<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をあきらめました。維持するのに苛立たせるために、アプリケーションの方法は好きではありません。
Parse.initialize()
アプリケーション全体に対して1回だけ呼び出す必要があります。
Activity
のonCreate
関数で呼び出すと、アプリのライフサイクル中にアクティビティを複数回作成できるため、複数回初期化される可能性があります。
代わりに、アプリケーションクラスを作成します(android:name
アプリケーションのマニフェストに属性を追加します)。
アプリケーション:(アクティビティ/サービス/レシーバーではないことに注意)
//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));
}
AndroidManifest:
<application
android:name=".MyApplication">
....
<activity>
....
</activity>
</application>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加