トップページ > 記事閲覧
AmazonのBaaS『GameSparks』がエラーで使用できません
名前:焼肉 日時: 2020/11/27 05:33

お世話になってます。 現在、DXライブラリでネット接続を試そうとC++に対応しているBaaS『GameSparks』を実装しようとしているのですが、以下のエラーが表示されコンパイルできません。 どのように修正すればコンパイルが起動できるでしょうか? エラー MSB6006 "clang.exe" はコード 1 を伴って終了しました。 GameSparksTest.NativeActivity C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Application Type\Android\3.0\Android.Common.targets 104 参考にした公式のソース ttps://github.com/gamesparks/gamesparks-cpp-base/blob/master/base/samples/sample01Connect.cpp 実際のソース //main.cpp #include "DxLib.h" //Include the headers for GS, IGSPlatform , the unique platform for the SDK and under the generated folder the headers for requests, responses and messages. #include <GameSparks/GS.h> #include <GameSparks/IGSPlatform.h> namespace SampleConfiguration { using namespace GameSparks; using namespace GameSparks::Core; using namespace GameSparks::Optional; class NativePlatformDescription : public IGSPlatform { public: NativePlatformDescription() :IGSPlatform ( "YOUR AUTH KEY", // insert your auth key "PASSWORD", // insert your secret true, // use the preview server? true // do you want verbose debugging? ) { SetRequestTimeoutSeconds(5); } virtual gsstl::string GetSDK() const { return "GameSparks SDK C++ 1.0"; } virtual gsstl::string GetDeviceType() const { return "Desktop"; } virtual void DebugMsg(const gsstl::string& message) const { printfDx("[%s] GameSparks API: %s", GSDateTime::Now().ToString().c_str(), message.c_str()); } }; } // プログラムは android_main から始まります int android_main(void) { if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } using namespace GameSparks::Core; GS gs; SampleConfiguration::NativePlatformDescription platform; gs.Initialise(&platform); DrawBox(220, 140, 420, 340, GetColor(255, 255, 255), TRUE); // 四角形を描画する gs.Update(0.1f); WaitKey(); // キー入力待ち DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 } // AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <!-- Changes made to Package Name should also be reflected in the Debugging - Package Name property, in the Property Pages --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.$(ApplicationName)" android:versionCode="1" android:versionName="1.0"> <uses-permission android:name="android.permission.INTERNET" /> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="26"/> <!-- This .apk has no Java code itself, so set hasCode to false. --> <application android:label="@string/app_name" android:hasCode="false" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <!-- Our activity is the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="android.app.NativeActivity" android:label="@string/app_name" android:configChanges="orientation|screenSize" android:launchMode="singleInstance"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="$(AndroidAppLibName)"/> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
メンテ

Page: 1 |

Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.1 )
名前:焼肉 日時:2020/11/27 05:34

追記すると、 GS gs; SampleConfiguration::NativePlatformDescription platform; gs.Initialise(&platform); gs.Update(0.1f); の行のどれかがあるとエラーが発生してしまいます。
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.2 )
名前:焼肉 日時:2020/11/27 07:03

C:\gamesparks-cpp-base-master\base\include のパスを追加のインクルードディレクトリと追加のライブラリディレクトリに追加したのですが、 上記はヘッダファイルしかないため、cppファイルがある C:\gamesparks-cpp-base-master\base\src のソース群をプロジェクトに追加すれば良いのかもしれません。 ただ、そうだとして、どのように関連付ければいいのか分かりません。
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.3 )
名前:焼肉 日時:2020/11/27 07:56

AndroidManifestのパーミッションには以下を挿入する必要性もあるようです。 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ↓のページ参照 tps://docs.gamesparks.com/sdk-center/android.html
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.4 )
名前:kanamaru 日時:2020/11/27 08:20

build_scriptsフォルダのCMakeLists.txtを見る限りもしかして 自分でライブラリをビルドする必要があるのかもしれません。 自分でライブラリをビルドして、追加のライブラリディレクトリにビルドしたライブラリがあるフォルダを指定すればもしかしたら。 あっでも追加のライブラリディレクトリってことはvisualstudioか。 ttps://devblogs.microsoft.com/cppblog/support-for-android-cmake-projects-in-visual-studio/ を読む限り、Cmakeでvisualstudio向けにプロジェクトを作成すればライブラリをビルドすることはできそうです。 正直開発環境をandroidstudioに変えた方ができそうです。 今ならdxlibもandroidstudioでビルドできますし。
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.5 )
名前:焼肉 日時:2020/11/28 11:25

kanamaru様返信ありがとうございます。 Cmakeを今まで使ったことがなかったので、早速使用してみました。 非常に便利なツールを教えて下さりありがとうございます。 tps://yaki-3d.work/CMakeTest/cmaketest_1.jpg tps://yaki-3d.work/CMakeTest/cmaketest_2.jpg 一応、公式GitHub(tps://github.com/GameSparks/gamesparks-cpp-base)のテストスイートは実行可能になりました。 ただ、CMakeで作られたものはWindowsアプリケーションのようでDXLibを絡めたAndroid向けのものはこれを参考に今からやってみます。 中間報告ではありますが、報告させて頂きました。
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.6 )
名前:焼肉 日時:2020/11/28 13:19

自分なりにvoidポインタ型を明示的に変換したりAndroid定義による分岐がおかしかったのを修正(__ANDROID__がANDROIDになっているなど)バグ取りして組み込んでみたのですが、やはりclang.exeがエラーコード1を吐き出してしまいました。 とりあえず、AndroidStudioのJNIを使用してまたやってみます。 中間報告ではありますが、報告させて頂きました。
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.7 )
名前:焼肉(解決済み) 日時:2020/11/29 12:13

コンパイルがVisualStudioのAndroidでも通りました。 clangの出力結果にエラー内容が含まれている事に気付いたためどうにか出来たようです。 公式githubの tps://github.com/GameSparks/gamesparks-cpp-base SDKをプロジェクトに統合する項目を参考にしました。 ★変更点 ・"ANDROID"→"__ANDROID__"(マクロ?の定義ミス) ・"_B"→"__B"(構造体のオブジェクトがマクロと名称が重なっていたためエラー。includeする必要性のないヘッダファイルをincludeしている可能性ありのため、バグる可能性あり) ・"GS_TARGET_PLATFORM == GS_PLATFORM_ANDROID"→"__ANDROID__" "GS_TARGET_PLATFORM"がなぜかLINUXになってしまっている不具合がある模様… ・GameSparksAll.cppの先頭に追加(includeミスの可能性ありのため直す所直せば必要ないかもしれません)    #include<GameSparks/GSUtil.h> ・void型のポインタを別の型のポインタにキャスト ・AndroidManifestに以下を追加 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ・"__INT_MAX__"→"INT_MAX"
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.8 )
名前:焼肉(解決済み) 日時:2020/11/29 12:15

"GS_TARGET_PLATFORM == GS_PLATFORM_ANDROID" の分岐もなぜかLINUXがTRUEになってしまっているため、順番も入れ替えるかLINUXの行を消去する必要があるようです。
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.9 )
名前:焼肉(解決済み) 日時:2020/11/29 18:02

一応完成したデータをアップしておきます。 ・C直下に解凍するもの(公式のSDKをAndroidでもコンパイル出来るようにしたもの) tps://yaki-3d.work/GameSparks/gamesparks-cpp-base-master.zip ・前回成功したVisualStudioのプロジェクト tps://yaki-3d.work/GameSparks/GameSparksTestVS2.zip
メンテ
Re: AmazonのBaaS『GameSparks』がエラーで使用できません ( No.10 )
名前:焼肉(解決済み) 日時:2020/11/29 18:03

×・前回成功したVisualStudioのプロジェクト 〇・今回成功したVisualStudioのプロジェクト 失礼いたしました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存