0

アンリアル エンジン 4 を使用してモバイル ゲームを作成しています。現在、リーダーボード、アチーブメント、アプリ内購入ができるように Google Play サービスをセットアップしようとしていますが、今は最初の部分で苦労しています。

この短いビデオで動作を確認できます。

サービスに連絡しようとすると、何かがうまくいかず、あきらめてしまうようです。これが起こっている間に電話からlogcatログファイルを作成しました。これが得られたものです:

I/GamesNativeSDK(16078): Connecting to Google Play...

V/GamesNativeSDK(16078): Attached to JVM on thread main_dispatch

D/ChimeraCfgMgr(11916): Loading module com.google.android.gms.games from APK com.google.android.play.games

D/ChimeraModuleLdr(11916): Module APK com.google.android.play.games already loaded

D/ChimeraCfgMgr(11916): Loading module com.google.android.gms.games from APK com.google.android.play.games

D/ChimeraModuleLdr(11916): Module APK com.google.android.play.games already loaded

V/GamesNativeSDK(16078): Play Games callback indicates connection failure.

I/GamesNativeSDK(16078): UI interaction required to connect to Google Play.

D/UE4     (16078): [2015.10.26-19.31.29:804][  0]LogOnline:Warning: Async task 'Login' failed in 0.582350 seconds

E/SignInIntentService(11916): Access Not Configured. The API (Google Play Game Services API) is not enabled for your project. Please use the Google Developers Console to update your configuration.

E/SignInIntentService(11916): com.google.android.gms.games.server.error.GamesException

E/SignInIntentService(11916):  at com.google.android.gms.games.server.GamesServer.getResponseBlocking(GamesServer.java:164)

E/SignInIntentService(11916):  at com.google.android.gms.games.broker.PlayerAgent.getPlayerFromNetwork(PlayerAgent.java:1700)

E/SignInIntentService(11916):  at com.google.android.gms.games.broker.PlayerAgent.fetchPlayer(PlayerAgent.java:621)

E/SignInIntentService(11916):  at com.google.android.gms.games.broker.DataBroker.loadSelf(DataBroker.java:920)

E/SignInIntentService(11916):  at com.google.android.gms.games.service.PlayGamesSignInIntentService$LoadSelfOperation.executeInternal(PlayGamesSignInIntentService.java:402)

E/SignInIntentService(11916):  at com.google.android.gms.games.service.PlayGamesSignInIntentService$BaseOperation.execute(PlayGamesSignInIntentService.java:51)

E/SignInIntentService(11916):  at com.google.android.gms.games.service.PlayGamesSignInIntentService$OperationAdapter.execute(PlayGamesSignInIntentService.java:487)

E/SignInIntentService(11916):  at com.google.android.gms.chimera.BaseAsyncOperationService$OperationTask.run(BaseAsyncOperationService.java:179)

E/SignInIntentService(11916):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

E/SignInIntentService(11916):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

E/SignInIntentService(11916):  at java.lang.Thread.run(Thread.java:818)

E/LoadSelfFragment(16219): Unable to sign in - application does not have a registered client ID

エラー メッセージは理解できますが、エラー メッセージが表示される理由がわかりません。ランチャーから直接デプロイするだけでなく、署名付き APK を作成して携帯電話にインストールしようとしました。同じ結果です。

この問題の解決策を探しましたが、開発者コンソールの設定に問題はなく、不足しているものもありません。私はここで少し途方に暮れており、2015 年 12 月のリリースを目指しているので、助けが必要です。Epic Games は、これを行うために提供されたノードに関するドキュメントをほとんど持っていなかったので、これらすべてを暗闇で手探りしていました。

前編

第二部

4

2 に答える 2

2

暗闇の中で多くの苦労と手探りをした後、私は自分で解決策を見つけました. このリンクからアンリアル フォーラムにアクセスして、私がどのようにそれを行ったかを確認してください。

その基本的な要点は次のとおりです。

開発者コンソールで次の API がロック解除されていることを確認します。

  • Android 用 Google クラウド メッセージング
  • Google Cloud Pub/Sub
  • Google Cloud ユーザー アカウント
  • Google Play Android デベロッパー API
  • Google Play ゲーム管理
  • Google Play ゲーム サービス
  • Google+ API

資格情報に公開サーバー キーがあり、IP リストに IP がないことを確認してください。

<manifest>プロジェクト設定の部分に次の 2 行を追加します。

  • com.google.android.gms.games.APP_ID="@string/app_id"
  • com.google.android.gms.appstate.APP_ID="@string/app_id"

次に、これらすべての権限をExtra Permissionsプロジェクトの一部に追加します

  • com.android.vending.BILLING (アプリ内購入がある場合のみ)
  • android.permission.INTERNET
  • android.permission.GET_ACCOUNTS
  • android.permission.USE_CREDENTIALS

ビルド フォルダーを開き、アプリ IDGooglePlayAppID.xml<PROJECT NAME>\Build\Android\res\values追加します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_id">YOUR GAMES APP ID HERE</string>
</resources>

これで、Epic が提供するノードを使用して、アチーブメント、リーダーボード、およびアプリ内購入を機能させることができるはずです。

于 2015-10-28T21:37:53.700 に答える
1

もう 1 つの重要なステップ (Unreal フォーラムのリンクにあります) は、YourProject.build.cs への次の追加です。

if (Target.Platform == UnrealTargetPlatform.Android)
{
    PrivateDependencyModuleNames.Add("OnlineSubsystem");
    PrivateDependencyModuleNames.Add("OnlineSubsystemGooglePlay");
}

ソース: https://forums.unrealengine.com/showthread.php?67343-How-do-I-debug-refusal-to-connecto-to-Google-Play-services

(Windows/Steam などの他のプラットフォームでは onlineSubsystem が必要になる場合があります)

于 2016-03-12T02:19:59.433 に答える