酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

AndroidアプリにOneSignal SDKを導入する

最近「OneSignal」を使ったアプリを開発しています。

OneSignalというのは、iOS/AndroidやさらにWebブラウザといったクロスプラットフォームに対応したプッシュ通知の送信サービスです。ネイティブアプリだけではなくXamarinなどにもSDKを提供しているそうです。

AndroidアプリにOneSignal SDKを導入する

iOSアプリには比較的簡単に導入することができたのですが、Androidアプリでは少し引っかかってしまいました。基本的には下記の公式ドキュメントで書かれている手順に従うだけです。

ここで導入方法を紹介することもできたのですが面倒臭い公式ドキュメントの劣化コピーになってしまいますので時間ができれば紹介したいと思います。

本記事ではOneSignal SDKを導入した際に発生したトラブルの対処方法を紹介します。

オンデマンド設定は現在のバージョンではサポートされていません とエラーが出てしまう

build.gradleにOneSignal関係のものを追記したら、以下のエラーが出るようになってしました。

Configuration on demand is not supported by the current version of the Android Gradle plugin since you are using Gradle version 4.6 or above. Suggestion: disable configuration on demand by setting org.gradle.configureondemand=false in your gradle.properties file or use a Gradle version less than 4.6.

Configuration on demand is not supported by the current version of the Android Gradle plugin - Stack Overflow を参考にして解決しました。

OneSignalのダッシュボードでInvalid Google Project Numberと表示されてしまう

OneSignalのダッシュボードで下図のようにInvalid Google Project Numberと表示されてしまいました。

f:id:ch3cooh393:20180717150744j:plain

Firebaseを組み込んでいないのが原因でした。「OneSignal Push Notification Service Documentation」を参考に Firebaseでプロジェクトを作成して、サーバーキーと送信者IDを取得します。取得したサーバーキーと送信者IDはOneSignalダッシュボードから登録します。

ステータスバーアイコンが反映されない

決められた名前でdrawableフォルダに格納する必要があります。「OneSignal Push Notification Service Documentation」を参考にして、res/drawable-mdpi/ic_stat_onesignal_default.pngのような名称でリソースを追加します。