Androidプラットフォーム用のCocos2D-xエンジンを使用してモバイルゲームを開発しています.GPGSを統合したいと考えています。 リーダーボードの表示には成功しましたが、少し面倒な問題があります。リーダーボードが表示されているときに、バックグラウンドでアプリに戻ると、ゲームセンは黒くなります。 OpenGLのコンテキストがリリースされ、再び復元されないと思います。私の意見では、同じ活動を行っているリーダーボードがこれを引き起こすと、ゲームエンジンは何が起こっているのか理解できません。このため、私はインテントを使用して新しいアクティビティでリーダーボード(およびすべてのGPGSのもの)を実行したいと思います。Google PlayサービスIntentHandlerを使用して2番目のアクティビティでC++/UIを実行
GoogleはGoogleのの参照文書で ゲームサービスC++ SDKを再生する「提供」好き、SetOptionalIntentHandlerForUI方法の使用に関するいくつかのあいまい/不明の説明があります。
"startActivityForResultを使用して、提供されたUIインテントを任意の時点で開始できる機能を提供します。"
「提供」の意味は何ですか?提供されるインテントとは何ですか? startActivityForResultメソッドはどのように使用しますか?残念ながら、 "使用する"と "提供する方法"は、コーディングの明確な表現ではありません。 GPGS for C++のドキュメントには、 に関するサンプルはありません。結局、 Googleの文書が非常に貧しく、 インターネット上に有用な情報がありません。 Googleの誰かが私を助けてくれたら、とても幸せになれます。
私はこのようなコードを書いています。しかし、起動時にエラーが発生します。
AppActivity.java
public void runGPGSActivity(Intent i) {
startActivityForResult(i,100);
}
AndroidPlatformConfiguration.h(C++ GPG LIBから)
typedef std::function<void(jobject)> IntentHandler;
AndroidPlatformConfiguration &SetOptionalIntentHandlerForUI(
IntentHandler intent_handler);
main.cppに(JNIは、作業コードを結合、GPGSは同一の活性上で実行)
gpg::AndroidPlatformConfiguration platform_configuration;
platform_configuration.SetActivity(activity);
StateManager::InitServices(...
main.cpp(JNIバインディング、GPGSは新しいアクティビティで実行する必要があります)
gpg::AndroidPlatformConfiguration platform_configuration;
jclass activityClass = env->FindClass("org/cocos2dx/cpp/AppActivity");
jmethodID jIntentHandlerMethodID = env->GetMethodID(activityClass,"runGPGSActivity","(Landorid/content/Intent;)V");
jobject jIntentHandler = env->NewObject(activityClass, jIntentHandlerMethodID);
gpg::AndroidPlatformConfiguration::IntentHandler mIntentHandler; /*= [](jobject mjIntentHandler){};*/
std::function<void(jobject)> intentHandler = std::bind(mIntentHandler,jIntentHandler);
platform_configuration.SetOptionalIntentHandlerForUI(intentHandler);
platform_configuration.SetActivity(activity);
StateManager::InitServices(
ビルドエラーはありませんが、起動時にアプリケーションがクラッシュします。
3月24日14:12:24.301:A/libcの(21352):致命的な信号6(SIGABRT) で0x00005368(コード= -6)、スレッド21352(メイン)
そしてこの問題についていくつかのリンク:
StartActivityForResult reference
///は、事前にありがとうございます。 ///
誰か助けてくれますか? –