Unityでスマホゲームを作り始めると、かなりの人が同じ壁にぶつかります。
「PCではちゃんと動くのに、AndroidやiOSの実機だとエラーが出る…」
「ビルドは失敗するし、赤いエラーメッセージを見ても何が原因かわからない…」
私も最初は、正直この状態でした。
エラー文をそのまま検索しても情報がバラバラで、
「結局どこを直せばいいの?」と何時間も悩んだことがあります。
Unityのスマホゲーム開発では、コードそのものよりも、環境設定・ビルド設定・実機特有の制約が原因でエラーが出ることが本当に多いです。
しかも初心者のうちは、「どの種類のエラーなのか」すら判断できずに詰まりがちなんですよね。
この記事では、Unityでスマホゲーム(Android / iOS)を開発する際に、
初心者が特につまずきやすいエラーを原因別に整理しながら、
- よくある再現パターン
- エラーログの見方
- 実際に何を直せばいいのか
を、できるだけ噛み砕いて解説していきます。
「エラー=難しいもの」ではありません。
原因のタイプさえわかれば、落ち着いて対処できるようになります 🙂
それではまず、Unityスマホ開発で最初につまずきやすい
開発環境のセットアップまわりのエラーから一緒に見ていきましょう。
開発環境セットアップでつまずく共通エラー
Unityでスマホゲームを作るとき、実は一番最初につまずきやすいのが
「まだ何も作っていない段階の環境設定」です。
コードを書いていなくても、設定が足りないだけでビルドできなかったり、
そもそもAndroidやiOSが選べなかったりします。
Android / iOSがBuild Settingsに表示されない
「Build Settingsを開いても、AndroidやiOSが選択肢に出てこない」
これは初心者さんから本当によく聞くトラブルです。
この場合、ほとんどの原因はUnity Hubで必要なモジュールが入っていないことです。
- Android Build Support
- iOS Build Support
これらがインストールされていないと、
Unity上では「存在しないプラットフォーム」扱いになります。
Unity Hubで使っているUnityバージョンの「モジュールを追加」から、
対象のBuild Supportが入っているかを必ず確認してください。
ここでありがちなのが、
「別のUnityバージョンには入っているのに、今使っているバージョンには入っていない」ケースです。
Unityはバージョンごとにモジュールが管理されているので、
プロジェクトで使っているバージョンを基準に確認しましょう。
SDK / JDKが見つからないエラーが出る
Android向けにビルドしようとすると、
- SDKが見つからない
- JDKのパスが通っていない
といったエラーが出ることがあります。
これは External Tools の設定が原因であることがほとんどです。
Unityのメニューから
- Unity Editor > Preferences > External Tools(Mac)
- Edit > Preferences > External Tools(Windows)
を開き、Android SDK / NDK / JDKのパスが正しく設定されているかを確認してください。
初心者さんには、
Unity Hub経由でインストールされた推奨バージョンをそのまま使う方法がおすすめです。
手動でパスを設定すると、
- 古いSDKを参照している
- 別の場所にあるJDKを拾ってしまう
といったトラブルが起きやすくなります。
環境構築でエラーが出たときは、
「コードを疑う前に、まず設定を疑う」
これをぜひ覚えておいてください 🙂

次は、Androidビルド時によくあるエラーを原因別に見ていきましょう。
Androidビルド時によくあるエラーと解決策
Android向けのビルドは、Unityスマホ開発の中でも
特にエラーが出やすいポイントです。
理由はシンプルで、Androidは
- SDK / JDK / NDK
- Gradle
- プラグインや外部ライブラリ
など、Unityの外側の要素が多く関わっているからです。
「Unable to list target platforms」エラー
Androidビルド時に、突然このエラーが出ることがあります。
このエラーの正体は、Unityが現在のAndroid SDK Toolsに対応できていないケースです。
特に、
- Android Studioを先に入れている
- SDK Toolsが自動アップデートされた
といった環境で発生しやすいです。
解決策としてよく知られているのが、
SDK Toolsを安定していたバージョンに戻す方法です。
ただし、これはすべての環境で必要なわけではありません。
まずは、
- Unity Hub経由のSDKを使っているか
- External ToolsでパスがUnity Hubのものを指しているか
を確認し、それでもダメな場合の最終手段として検討しましょう。
AndroidManifest.xml のマージ失敗
ビルドログに
Manifest merger failed
と出た場合、ほとんどがプラグイン同士の設定競合です。
初心者のうちは、
- 何も触っていないのにエラーが出た
- 急にビルドできなくなった
と感じやすいですが、実際には
- 新しいアセットを入れた
- SDKやUnityを更新した
直後に起きていることがほとんどです。
まずはコンソールログをスクロールして、
「どの属性が競合しているか」を確認しましょう。
無理にXMLを直す前に、
- 不要なプラグインを外す
- 同じ機能のアセットを複数入れていないか確認する
この切り分けがとても大切です。
Duplicate JAR / AAR(ライブラリ重複)エラー
次のようなエラーが出たことはありませんか?
android-support-v4.jar already exists
これは、同じライブラリが複数含まれている状態です。
Assets/Plugins/Android フォルダの中に、
- 古いjar
- 別プラグインが持っている同名aar
が同時に入っていることが原因になります。
初心者さんは「消していいのが怖い」と感じがちですが、
明らかに古いもの・使っていないアセット由来のものは整理が必要です。
64Kメソッド制限(DEX limit error)
Androidには、Javaメソッド数が65,536を超えるとビルドできない制限があります。
広告SDKや解析SDKをいくつか入れると、
初心者でも簡単にこの制限に引っかかります。
対策として代表的なのが、
- コードストリッピング(未使用コードの削除)
- Multidexの有効化
です。
ただし、設定を増やすほど複雑になるため、
本当に必要なプラグインだけを入れているかを先に見直すのがおすすめです。
Gradleビルドエラー
Gradleエラーは内容が長く、初心者さんが一番混乱しやすいです。
大事なのは、
- 一番上の赤文字ではなく
- 「Caused by:」の行
を見ることです。
原因として多いのは、
- GradleとUnityのバージョン不整合
- メモリ不足
このあたりです。
Gradleエラーは「Android特有の壁」なので、
一度で完璧に理解しようとしなくて大丈夫です。

次は、iOSビルド(Xcode)で初心者がつまずきやすいポイントを見ていきましょう。
iOSビルド(Xcode)でつまずくポイント
iOS向けのビルドは、Androidとはまた違った意味で
初心者さんが一気に不安になりやすい工程です。
Unity上ではエラーが出ていないのに、
- Xcodeでビルドできない
- 実機に転送できない
- 原因が英語だらけで読めない
という状況になりがちなんですよね。
Provisioning Profile・署名エラー
iOSビルドで最も多い原因が、
署名(Signing)まわりの設定ミスです。
初心者さんが混乱しやすい理由は、
Unityの外でApple独自のルールが関わるからです。
まず確認してほしいポイントは次の3つです。
- iPhoneがMacに正しく接続されているか
- XcodeにApple IDでログインしているか
- Automatically manage signing が有効か
個人開発・学習目的であれば、
自動署名(Automatically manage signing)を使うのが一番安全です。
「証明書がどうこう」と表示されても、
最初は細かく理解しようとしなくて大丈夫です。
まずは、
- Teamが自分のApple IDになっているか
- エラーが消えるか
ここだけを確認しましょう。
macOS / Xcode / iOSのバージョン互換性
iOS開発では、次の3つは必ずセットで考える必要があります。
- macOSのバージョン
- Xcodeのバージョン
- 実機iOSのバージョン
例えば、
- iOSだけ最新
- Xcodeが古い
この状態だと、実機が認識されないことがあります。
「昨日まで動いていたのに急にダメになった」場合、
iOSの自動アップデートが原因なことも多いです。
エラー内容がよく分からないときほど、
まずはバージョンの組み合わせを疑うクセをつけましょう。
EXC_BAD_ACCESSなどのリンクエラー
Xcodeで
EXC_BAD_ACCESS
と表示されると、かなり怖く感じますよね。
でも多くの場合、これは
- Unity本体の問題
- あなたのスクリプトのバグ
ではなく、外部ライブラリとの相性問題です。
特に、
- 古いiOS向けSDK
- 長期間更新されていないアセット
を使っていると発生しやすくなります。
初心者さんがやりがちなのは、
ここで無理にXcodeの設定をいじり続けてしまうことです。
原因の切り分けとしては、
- そのアセットを外すとビルドできるか
- UnityやiOSの対応バージョンが合っているか
を先に確認するのが正解です。

次は、ビルドは成功するのに実機で動かない
ランタイムエラーについて見ていきましょう。
実機実行時に起きるランタイムエラー
「やっとビルドが通った!」と安心したのに、
実機で起動した瞬間に落ちる・動かないというのも、Unityスマホ開発あるあるです。
この段階のエラーは、
Editor再生では再現しないことが多いため、初心者さんが一番混乱しやすいポイントでもあります。
Unityの教科書 Unity 6完全対応版
✅ Amazonでチェックする|✅ 楽天でチェックする
実機エラーで悩み始めたタイミングは、
「Unityの仕組みを体系的に理解し直す」のにちょうどいい時期でもあります。
起動直後にクラッシュする
アプリを起動して、
ロゴが出る前・出た直後に落ちる場合、原因はだいたい次のどれかです。
- 参照エラー(Inspectorで未設定)
- 初期シーンが重すぎる
- メモリ不足
- AOT / コードストリッピングの影響
Editor再生では問題なく動くのに、
実機だけで落ちるのはメモリ制約が大きな理由です。
特に初心者さんがやりがちなのが、
- 最初のシーンに大量のオブジェクトを置く
- 重い処理をAwakeやStartで一気に実行する
という構成です。
対策としては、
- 最初は軽いシーンを表示する
- 本処理は非同期でロードする
この考え方を覚えるだけでも、
起動時クラッシュはかなり減ります。
通信エラー(HTTPが拒否される)
Unity 2022以降を使っていると、
Insecure connection not allowed
のようなエラーが出ることがあります。
これは、HTTPS以外の通信がデフォルトで禁止されたためです。
初心者さんが勘違いしやすいのですが、
これは「通信処理のバグ」ではなく仕様です。
安全な対応としては、
- 通信先をHTTPSに対応させる
どうしても回避したい場合は、Player Settingsで
HTTP通信を許可する方法もありますが、
学習用以外では非推奨です。
ログを見ずに悩まないために
実機エラーで一番大切なのは、
「必ずログを見る」ことです。
- Android:adb logcat
- iOS:Xcodeのコンソール
ここで初心者さんがやりがちなのが、
- 赤い行だけを見る
- 一番上のエラーだけで判断する
という読み方です。
本当に見るべきなのは、
- 「Caused by:」
- エラーが出る直前のログ
です。
実機ログをそのままUnityに表示したい場合は、
次のようなデバッグ用アセットも役立ちます。
DevMenu Debug Console
✅アセットストアでチェックする
Debug Toolkit – In Game Console
✅アセットストアでチェックする
ログが見えるようになるだけで、
「原因が分からない」という状態から一気に抜け出せます。

次は、エラーが出たときに何から順番に確認すればいいのか
実践的なトラブルシューティング手順をまとめていきます。
実践的トラブルシューティング手順まとめ
ここまで読んで、「原因の種類はなんとなく分かったけど、
実際にエラーが出たら何から確認すればいいの?」と感じているかもしれません。
そこでこの章では、
エラーが出たときに私が実際にやっている確認手順を、そのままの形でまとめます。
この順番でチェックするだけでも、
無駄に遠回りすることはかなり減りますよ 🙂
① まずはコンソールログを最後まで読む
一番大事なのに、意外とできていないのがここです。
初心者さんはどうしても、
一番上に出ている赤いエラーだけを見てしまいがちですが、
- 「What went wrong:」
- 「Caused by:」
の後に書かれている内容こそが、本当の原因であることがほとんどです。
ログは上から下ではなく、下から上に読む意識を持ってみてください。
② 環境の問題か、プロジェクトの問題かを切り分ける
次にやるべきなのは、
「このエラーは環境依存か?」を判断することです。
おすすめなのは、
- 新規プロジェクトを作る
- 何もせずに同じビルドを試す
という方法です。
もし新規プロジェクトでも同じエラーが出るなら、
原因はUnity・SDK・Xcodeなどの環境側にあります。
逆に、新規プロジェクトでは問題なければ、
今のプロジェクト固有の設定やアセットが原因です。
③ キャッシュを疑う(Libraryフォルダの再生成)
Unityは内部でたくさんのキャッシュを持っています。
そのため、設定を直したのにエラーが消えない場合、
古いキャッシュが悪さをしていることがあります。
この場合は、
- Unityを閉じる
- プロジェクトの
Libraryフォルダを削除する - 再度プロジェクトを開く
これだけで、あっさり直ることも珍しくありません。
※ Libraryフォルダは自動生成されるので、削除しても問題ありません。
④ 再起動をナメない
ちょっと拍子抜けするかもしれませんが、
- Unityの再起動
- Xcodeの再起動
- PCの再起動
- 実機の再起動
これだけで直るエラーは、本当にあります。
特に、
- SDKを更新した直後
- USB接続が不安定なとき
は、再起動だけで解決するケースが多いです。
⑤ 一気に直そうとしない
初心者さんが一番やってしまいがちなのが、
- 設定を一気に変える
- SDKもUnityもまとめて更新する
という行動です。
これをやってしまうと、
何が原因で直ったのか(あるいは悪化したのか)が分からなくなります。
エラー対応では、
- 1つ変更する
- ビルドを試す
この繰り返しが、結果的に一番の近道です。

次は、初心者さんが特に勘違いしやすい
よくある誤解・注意点を整理していきます。
よくある誤解・注意点
Unityのスマホゲーム開発では、
エラーそのものよりも「考え方のズレ」が原因で長時間ハマってしまうことがあります。
ここでは、初心者さんが特に勘違いしやすいポイントを整理します。
エラーメッセージをそのまま検索すれば解決する
これはよくある誤解です。
エラーメッセージは環境や状況によって意味が変わるため、
同じ文言でも原因がまったく違うことがあります。
検索する前に、
- いつから出たエラーか
- 直前に何を変更したか
を整理するだけで、解決までの距離はかなり縮まります。
PCで動く=実機でも動く
Unity初心者さんが最初に抱きがちな思い込みです。
スマホ実機は、
- メモリが少ない
- CPU性能が限られている
- AOTコンパイルの制約がある
といったPCとはまったく違う環境です。
そのため、Editor再生で問題なくても、
実機でだけエラーやクラッシュが起きるのは珍しくありません。
エラーが出たらUnityを再インストールすべき
これもよく聞く行動ですが、
再インストールが必要なケースはかなり稀です。
多くの場合、
- 設定ミス
- 環境の不整合
- プラグイン競合
が原因なので、
再インストールしても根本解決にならないことが多いです。

まずはこの記事で紹介した
切り分け手順を一通り試してみてください。
まとめ
Unityでスマホゲームを開発していると、
エラーにぶつかるのは避けて通れません。
でも今回お伝えしてきたように、
スマホ向けのエラーはいくつかの典型パターンに分けて考えることができます。
- 開発環境の設定ミス
- Android / iOSビルド特有の問題
- プラグインやライブラリの競合
- 実機でのみ起きるランタイムエラー
やみくもに設定を触ったり、
エラーメッセージをコピペ検索するよりも、
- これはどの段階のエラーか?
- 環境の問題か?プロジェクトの問題か?
を整理するだけで、解決までの時間は大きく変わります。
私自身、初心者の頃はエラーが出るたびに落ち込んでいましたが、
今では「あ、これはあのパターンだな」と冷静に対処できるようになりました。
エラーは成長の途中で必ず通るチェックポイントです。
一つずつ潰していけば、確実にレベルアップできます 🙂
ここまで読んでくださったあなたなら、
次にエラーが出ても、きっと以前より落ち着いて対応できるはずです。
参考文献・参考リンク
- Unity公式マニュアル:Android向けトラブルシューティング
- Unity公式マニュアル:iOS向けトラブルシューティング
- Unity Androidビルドで詰まりやすいポイントまとめ(個人ブログ)
- Unity Androidビルドエラーに関するQ&A(Yahoo!知恵袋)
- Unity iOSビルド時のトラブルと対処法まとめ
- Unityビルドエラーの原因調査と切り分け事例(Zenn)
- Troubleshooting Unity Build for Android Platform(Game Developer)
- Xcode / Unityビルド時のエラーに関する議論(Stack Overflow)
よくある質問(FAQ)
- Qエラーが多すぎて、何から直せばいいかわかりません
- A
まずは「一番最初に出たエラー」を探すのがおすすめです。
Unityのログは、
後続のエラーが連鎖的に表示されることが多いので、- 一番下にあるエラー
- 「Caused by:」と書かれている行
から順に確認してみてください。
それだけで、実は原因が1つだけだった、というケースはよくあります。
- Qビルドエラーが出るたびにUnityやSDKを更新したほうがいいですか?
- A
基本的にはおすすめしません。
特に初心者のうちは、
- Unityを更新
- SDKを更新
- プラグインも更新
を同時に行うと、
原因の切り分けがほぼ不可能になります。まずは今の環境で直せないかを確認し、
どうしても必要な場合だけアップデートする、という順番が安全です。
- Qどうしても原因が分からない場合はどうすればいいですか?
- A
その場合は、
- 新規プロジェクトで再現するか確認する
- 怪しいアセットを一時的に外す
この2つを試してみてください。
それでも解決しない場合は、
ログ全文を整理したうえで質問サイトや公式フォーラムを使うと、
的確なアドバイスをもらいやすくなります。「エラーが分からない」のではなく、
情報が整理できていないだけということも多いですよ。










※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。