【Unity】appC使ってるプロジェクトにFelloいれた場合のAndroidビルドエラー対処

appCはプッシュ通知にも対応していますが、Unity側からローカルプッシュさせることなどはできないため、Unity SDKがあり時間指定のローカルプッシュが可能でしかも無料なFelloを導入してみたところ、Androidビルドでエラーが出るようになってしまいました・・・

※おそらくiOS版でも問題あるかもですが、Macがなくビルドできないのでそちらはわからないです。

ちなみに、ローカルプッシュを導入できると、たとえば時間で徐々に回復するスタミナとかが全回復するときに通知することができるので継続率に結構重要な要素なのです。
ここは、諦めずに対処法を探ってみました。

原因は、appc_cloud_1.1.2.jarとfellopush.jarでcom.google.android.gcmパッケージが重複して競合しているからでした。
お互いにプッシュ機能があるため仕方がないのはわかりますが・・・
幸い、appCのSDKではUnity用のEclipseプロジェクトが同梱されているため、なんとか対応できないか試してみました。

なお、先に結論から言うと、対応は可能ですが、この対応を行うとappC経由での課金およびプッシュ通知ができなくなります。

まずは、appCクラウドのUnity向けSDKとAndroid向けSDKをダウンロードして、解凍しておきます。
https://media.app-c.net/sdk_download/
AndroidとUnityのDownload SDKからそれぞれDL
今回対応に使用したバージョンは現在の最新版である、Android SDKが1.1.2、Unity SDKが1.1.1でした。

次に、解凍したUnity SDKのフォルダにあるeclipse_pj/appc_cloud_1.1.1_unity_plugin.zipも解凍。
Eclipseを起動して、appc_cloud_1.1.1_unity_pluginのプロジェクトをインポートします。

そして、Package Explorerのappc_cloud_1.1.1_unity_plugin/libs/appc_cloud_1.1.2.jarをおもむろに削除
同じく、appc_cloud_1.1.1_unity_plugin/libs/にAndroid SDKのappc_cloud_1.1.2_non_google_libs.jarをドラッグ&ドロップして追加。
すると、src/net.app_c.cloud.unity.player/AppCCloudPlayerNativeActivity.javaでエラーが出るので、
エラーが出てるPush、Purchase、Item関連のコードをごそっと削除。
エラーがなくなったら、jarを出力する。

最後にUnity側のPlugins/Android。
元からあったappc_cloud_1.1.1_unity_pluginとappc_cloud_1.1.2.jarを削除。
出力したjarとappc_cloud_1.1.2_non_google_libs.jarを配置。

念のためPlugins/AppCCloudのPush、Purchase、Itemも削除。
あと、AndroidManifest.xmlからPushとPurchase関連の設定を削除。

これで、appC側の対応は以上で完了です。
ちょっと詳しく説明すると、競合していたcom.google.android.gcm関連は、appc_cloud_1.1.2.jarに含められていたので、代わりにGoogleSDK関連が含まれていないappc_cloud_1.1.2_non_google_libs.jarを使用することで対応が可能になったわけです。
ただ、対応可能になったと同時に課金とプッシュ機能自体が除外されたことにもなります。
含まれないのだから競合しない、ただし当然その辺の機能がappCでは使えない。
ということですので注意が必要です。

Fello側はjarを特別なにかする必要はありません。
注意点は、Plugins/Android/res/xml/fello_config.xmlの設定で、
NotificationLaunchActivityPackageをnet.app_c.cloud.unity.playerに。
NotificationLaunchActivityNameをAppCCloudPlayerProxyActivityに。
このようにActivityの指定を書き換える必要があります。
これを正しく行わないと、プッシュ通知からのアプリ復帰が正常にできませんでした。

以上で対処完了です。
ビルドしてエラーが出ないこと、起動して通知したりしてみてください。

簡単にできてしかも無料という両サービスですが、簡単ゆえに競合部分が出てくるとなにかと大変になってしまいますね。
可能であれば、jar生成プロジェクトの公開や、いろいろな機能があるモノは機能ごとに着脱可能な造りにしてもらえると取捨選択しやすくなるのでこちらとしては嬉しいです。

Unityのアセット販売中!

ステートマシンの状態遷移やパラメータはエディタで編集でき、
ゲームロジックに依存するステートの挙動はスクリプトで記述可能なエディタ拡張。

詳細はこちら

RPGツクールVXやWOLF RPGエディターのオートタイルに準拠したエディタ拡張。

詳細はこちら

オススメ!