テクノモンキーのアプリ開発日記

テクノモンキーの開発ブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsやアプリ開発に役立つ情報を発信します。

Android

アプリから端末の広告IDを取得する方法(iOS,Android)

仕事で端末の広告IDを取得する場面があったので今後の為にメモ。端末の広告IDについて。まず、端末の広告IDというのはどのようなものかというのは以下の記事が参考になりました。つまり「広告ID」というのは、「端末を識別する為のユニークなIDで、再生成可…

【Android】アプリからgmailにテキストを自動送信させる方法(サーバーを使わない)

先日、サーバーを使わないでアプリからgmailにテキストを自動する方法を紹介しました。前回はiOS版だったので、今回はAndroid版です。Androidの場合はjavamailというライブラリを使用します。上記の例だと、画面上のボタンを押したタイミングで、EditTextに…

【Android】AdMobで 「Ad failed to load : 3」のエラーが出て広告が表示されない場合の対処法

AndroidアプリにAdMobを組み込んだ際、以下のようなエラーが出て広告が表示されません。今回はこのエラー内容と対処法についてのメモです。App does not have the required permissions to get location.SDK version: afma-sdk-a-v16187999.15300000.1 Ad fa…

Android Studioで公開用apk署名用のキーストアを作成する方法

新しくKeyStoreを作成する必要があったので、Android Studioで作成してみました。開発ツールでキーストア作成したのはEclipse時代以来ですが、ターミナルで作成するのに比べると、GUIが用意されている分、わかりやすい感じがします。Android Studioで公開用a…

AndroidでUIを組むならLinearLayoutのweightSumを使うと早いかも

iOSの場合、XcodeのGUIツールで簡単に組むことができますが、AndroidはXmlで組む必要があるので、iOSの比べると少々面倒です。(AndroidもGUIツールで組めるけど、結構癖がある気がする)個人的にはAndroidでUIを組む時はLinearLayoutのweightSumのが一番組…

【Android】アプリ内で動画を再生する方法(Java)

前に書いた、iOSでアプリ内で動画を再生する方法のAndroid版。ネットで調べた方法だと、動かないものが結構あったので、意外と時間がかかった。流れとしては、元のActivityから遷移したタイミングで動画を再生して、再生完了時点でActivityを終了させて元のA…

【Unity】Androidアプリビルド時にライブラリの競合エラーが発生した際の対処法に関するメモ

D8: Program type already present: android.arch.core.internal.SafeIterableMap Unityで作ったアプリに広告SDKをいれたらAndroidアプリビルド時に上記のようなエラーでビルド出来ない状態になってしまいました。エラー内容や変更点から考えるとSDK追加時に…

【Android】アルファ版をリリースする場合に登録しなきゃいけない項目まとめ

Unityで作ったアプリのAndroid版をアルファ版としてリリースしようとしたのですが、アルファ版をリリースする場合でも登録しなきゃいけない項目が結構あったので備忘録として残しておきます。Androidアプリをアルファ版として公開するためにGoogle Play Cons…

【Unity】CodelessIAPは結構罠が多いから自分でスクリプト書いた方が確実で速いと思うよ

最近Unityでアプリ内課金を実装するために「CodelessIAP」を使ってみました。簡単に実装できそうということで試してみましたが、結構罠があるので注意が必要そうです。今回はUnityのCodelessIAPでアプリ内課金を実装した感想、つまづきポイントをまとめてお…

【Unity】Android版の64bit対応でやるべきこと

Googleによると2019年8月1日以降、Google Playで公開するアプリには64bit対応が必須になるそうです。最近Google Playにアップしたアプリでも、64bit対応を勧める警告が表示されるようになってしまったので、今のうちに対応しておくことにしました。今回は、U…

【Unity】端末のステータスバー(時刻・電池残量)を表示する方法(iOS・Android)

Unityでアプリ開発の仕事をしていて、 お客さんからステータスバー(時刻・電池残量)を表示して欲しいという要望がありました。 Unityで1年くらい開発していますが、ステータスバーの表示はしたことがなく、 そもそもUnityでステータスバーの表示できるのか…

【Unity】Androidプラグイン作成時にClassNotFoundExceptionが発生した場合の対処法

UnityのAndroidプラグインを作成中に発生したエラーに関するメモ。 UnityのAndroidプラグイン作成時にClassNotFoundExceptionが発生 marunouchi-tech.i-studio.co.jp qiita.com smartgames.hatenablog.com 上記の記事を参考にUnityのAndroidプラグインを作成…

【Android】「Cannot fit requested classes in a single dex file.」のエラーの対処法

Androidアプリを開発していたら以下のようなエラーが出ました。「D8: Cannot fit requested classes in a single dex file. Try supplying a main-dex list.」今回はこのエラーの対処法についてのメモです。こちらのサイトによると、一定のメソッド数以上の…

【Android】No resource identifier found for attribute 'appComponentFactory'の対処法

先日、Androidアプリで広告SDKをいくつか導入したら、No resource identifier found for attribute 'appComponentFactory' こんなエラーが出ました。今回はこのエラーの対処法についてのメモです。 No resource identifier found for attribute 'appComponen…

【Android】アプリのminSDKVersionよりも高いAPI Levelのライブラリを使う場合の対処法

Androidアプリ開発で、minSDKVersionが14のアプリでminSDKVersionが16のライブラリを使おうとしたら、以下のようなエラーが出ました。 Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 16 declared in library AndroidM…

【cocos2d-x】画像やBGMなどのリソースファイルを追加する場合の注意点

最近cocos2d-xでアプリを開発していて、画像ファイルを追加したのにアプリに反映されないって事があり、結構ハマってしまいました...調べた結果、ちょっとしたことではあったのですが意外と忘れちゃうことだなと思ったので、今回は「cocos2d-xで画像やBGMな…

【Android】ライブラリの依存関係を調査する方法(gradle)

Androidアプリのライブラリ依存関係を調査する方法。少し前に仕事でSDKの組み込み対応を行ったのですが、過去に導入されたライブラリと今回いれたSDKでGoogleライブラリ系の競合が発生してしまいかなり苦労しました。今回は今後の為に「Androidアプリのライ…

【coco2d-x】Android版ビルド時にAPPT errorが出た場合の対処法

cocos2d-xでAndroid版をビルドしようとしたら以下のようなエラーが出るようになりました。java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check l…

【Android】アプリにディープリンクを実装する方法

昨日、iOSアプリにディープリンクを実装する方法を書いたので、今日はAndroidアプリにディープリンクを実装する方法を書いていきたいと思います。Androidアプリにディープリンクを実装する方法。iOSアプリにディープリンクを実装する方法は結構簡単でしたが…

【Android】開発中のアプリのアイコンがホーム画面に表示されない場合の対処法

先日Androidアプリを開発していたら、ホーム画面にアプリアイコンが表示されなくなってしまいました。現象としてはこんな感じです↓・以前はアプリアイコンがちゃんと表示されていたがいつからか消えていた・「設定」アプリのアプリ一覧では確認できる・「設…

【cocos2d-x】クリーンビルドする方法(Android)

最近cocos2dxでアプリを開発する仕事をしているのですが、Androidのプロジェクトで修正したはずの箇所がビルドしてみるとなおっていないということが結構ありました。今回は、「cocos2dx Android版でクリーンビルドする方法」について紹介したいと思います。

Androidアプリでプライバシーポリシー未設置を理由にGoogle Play ストアからアプリを削除されてしまった場合の対処法

先日、AndroidアプリがGooglePlayストアから削除されてしまったという記事を書いたのですが、今日削除されたアプリを復活できました。今回は、プライバシー未設置を理由にGoogle PlayストアからAndroidアプリを削除されてしまった場合の対処法についてまとめ…

Androidアプリがプライバシーポリシーの未設置を理由にGoogle Play ストアから削除されてしまった。。。

僕の作ったAndroidアプリが、昨日Google Playストアから削除されてしまいました。。。昨日、こんなメールがGoogle Playから届きました。デベロッパー各位 審査の結果、 "アプリ名"は、Google Play ポリシーに違反していると判断されたため、Google Play スト…

【Unity】Androidのプッシュ通知でアイコンが白くなる問題の対処法

最近、Unityで作ったゲームアプリ「ネコベンチャー」にFirebaseのプッシュ通知(FCM)を導入しました。実装自体は特に問題なかったのですが、Android端末にFirebaseコンソールから通知した際、アイコンが白くなる問題が発生しました。Androidアプリを開発し…

【Cocos2d-x】ターミナルでコマンドビルドする際、リリースビルドがエラーになる時の対処法

Cocos2d-xでコマンドビルドする際、リリースビルドでエラーになる場合の対処法について。ここ2、3日ずっとハマっていた問題がようやく解決しました。・Cocos2d-xのプロジェクトは他の人が作ったプロジェクト・Android Studioでビルドしようとしたけど、gradl…

【Android】String文字列を大文字・小文字に変換する方法(Java)

Android(Java)でString文字列を大文字や小文字に変換する方法についてのメモ。String文字列を大文字に変換する。String文字列を大文字に変換したい場合は「toUpperCase()」を使います。上記の場合、出力される文字列は「ABC」になります。

【Cocos2d-x】アプリアイコン下のアプリ名を変更する

Cocos2d-xでアプリアイコン下のアプリ名を変更する方法に関するメモ。 Cocos2d-xでアプリ名を変更する場合は、 AndroidとiOSそれぞれのプロジェクトファイルでアプリ名を変更する必要があります。iOS版の場合は、プロジェクトファイルのInfo.plistのファイル…

【Unity】アイコン下のアプリ名をローカライズする方法(Android編)

前回、Unityでアプリのアイコン下のアプリ名を変更する方法を紹介しましたが、 develop.hateblo.jp今回はアプリアイコン下のアプリ名をローカライズする方法について紹介したいと思います。 Project→Assets→Plugin→Android→resのフォルダを作成する* まず、…

【Android】This Gradle plugin requires a newer IDE able to request IDE model level 3. For Android Studio this means version 3.0+

仕事で、既存のプロジェクトをAndroid Studioにインポートしてでビルドしようとしたら発生したエラー。Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Android Studio this means version 3.0+。Gradleのプラグイン…

【Android】java.net.SocketException: Network is unreachableの原因について

前回に引き続き、FTPサーバーにアプリからファイルをアップロードしようとした際に出たエラー。 java.net.SocketException: Network is unreachable。「Network is unreachable」なので、なんらかの原因でネットワークに到達できていないと思われます。