読者です 読者をやめる 読者になる 読者になる

UnityでAndroidビルドが失敗するときの対処方法

Android Unity

はまったのでメモで残しておきます。


Android向けにアプリを作っていたのですが、「Build & Run」をクリックしたら失敗しました。

以下、調べたこと、原因、対策です。

調べてみたこと

1. エラーログ

まずはUnityのConsoleが出力するエラーを確認しました。

UnityException: Unable to install APK!
Installation failed. See the Console for details.
UnityEditor.Android.PostProcessAndroidPlayer.ShowErrDlgAndThrow (System.String title, System.String message, System.Exception ex)
UnityEditor.Android.PostProcessAndroidPlayer.ShowErrDlgAndThrow (System.String title, System.String message)
UnityEditor.Android.PostProcessAndroidPlayer.UploadAndStartPlayer (System.String manifestName, System.String stagingArea, UnityEditor.Android.AndroidDevice device, System.String packageName, Boolean devPlayer, Boolean retryUpload)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcessInternal (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316)
UnityEditor.HostView:OnGUI()


ただ、このログでは何が原因かわかりませんでした。

2. apkのみの生成可否を確認

「Build&Run」は、言葉通りビルドした後、実機に転送して起動(Run)までしてくれます。

問題の切り分けのため、「Build」ボタンをクリックしてapk生成だけを試してみました。

結果、apkは問題なく実行できました。

3. adbコマンドでインストールを実行

それでは、とターミナルから

#adb install app.apk

を実行すると、

INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES

というエラーが出ました。この言葉をググると下記のように書かれていました。



不正な証明書です。
すでにインストールされているアプリと証明書が異なります。

そこで、ようやくわかりました。

原因

Unityでのビルド時に指定する、"Build Identifier"が、すでに実機にインストール済みのものと同一だったため。

"Build Identifier"は下記にあります。

f:id:Takyu:20160125204416p:plain


私の場合、以前作ってインストールしたままだったアプリの"Build Identifier"が"com.example"のままでした。

これを忘れてて、また同じIdentifierを指定してたため、このようなエラーが起きてしまいました。

対策

"Build Identifier"を別の名称にする。

(例:com.exampleをcom.example2 とする)



[補足]
ずいぶん前にも似たようなタイトルで記事を書きました。よかったらこちらもご参照ください。

magicbullet.hatenablog.jp

広告を非表示にする