2012年02月21日

[Unity] UnityException: APK Signing Failed! 対策

[Unity] 【重要】3.5.0.b6 版での注意[Unity] Unity3.5正式版がリリースされました の2つの記事で
Android向けに署名付きビルドが出来なくて困っていた件が解決しました!

ヒントはUnityフォーラムにありました↓
http://forum.unity3d.com/threads/120479-APK-Signing-Failed!-Unable-to-determine-signature-algorithm.

システム環境変数の「CLASSPATH」に誤りがあったことが原因でした。

201202021unity_classpath.png

CLASSPASSを以下のフルパスにしたら問題が解決しました!

C:\Program Files (x86)\Java\jdk1.6.0_31\bin;
※JDKのバージョンはお使いの環境をご確認ください

これで色々と前に進むことができます!
解決してよかった!
posted by be-style at 08:57| Comment(11) | Unity
この記事へのコメント
unity3.5.6のビルドがうまくいきません。

少し前まで動いていたのですが、keystoreを入れようとするとJDKが無いといわれ、環境変数でJAVA_HOMEの変数を設定しkeystoreを入れてビルドすると、
「r building Player: UnityException: APK Builder Failed!
Failed to build APK package. See the Console for details.」というエラーが出ます。
ほかのエラー内容を見ても、
「'C:\Program' �́A�����R�}���h�܂��͊O���R�}���h�A
�����”\�ȃv���O�����܂��̓o�b�` �t�@�C���Ƃ��ĔF�������Ă��܂����B

UnityEngine.Debug:LogError(Object)
PostProcessAndroidPlayer:BuildApk(String, Boolean, Boolean) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/BuildPipeline/PostProcessAndroidPlayer.cs:1031)
PostProcessAndroidPlayer:PostProcess(BuildTarget, String, String, String, String, String, String, BuildOptions) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/BuildPipeline/PostProcessAndroidPlayer.cs:457)
UnityEditor.HostView:OnGUI()

と文字化けをしていて、解決できません。

ためしにJAVA_HOMEの変数を削除して、実行するとうまくいきますが、keystoreがセットできません。

諸事情で、unityのバージョンをあげるわけにはいきません。

解決法か、文字化けの内容を読む方法を知らないでしょうか?

もし足りない情報があるのでしたら提供します。
どうかお力をお貸しください。
Posted by 大山 将貴 at 2014年09月04日 19:36
追伸

OS Windows7 64bitです。
Posted by 大山 将貴 at 2014年09月04日 19:39
コメントありがとうございます。
Windowsなんですねー。

C:\Program 以下のディレクトリ名に日本語(または全角文字)を使っていませんか?

少し前まで動いていたということですが、何をしたらこのような状況になってしまったのでしょう。
Posted by be-style at 2014年09月04日 20:15
文字化けを読む方法は私も存じてないです^^;
スミマセン。。。
Posted by be-style at 2014年09月04日 20:18
>少し前まで動いていたということですが、何をしたらこのような状況になってしまったのでしょう。

返事が遅くなり申し訳ございません。

この質問に対してですが、環境設定で[JAVA_HOME]と設定しJDKへのパスを通したら、動かなくなりました。
JDKのパスをはずすとapkは、吐き出されますがkeysotreをつけることができません。

自分の中ではJDKの何かが間違っていると思うのですが...
Posted by 大山 将貴 at 2014年09月04日 21:31
>C:\Program 以下のディレクトリ名に日本語(または全角文字)を使っていませんか?

この質問に対しての返答は、無いです。
あるとしたら、「ユーザー」のひとつだけです。
Posted by 大山 将貴 at 2014年09月04日 21:34
JDKまわりだと、こちらのブログでも少し情報がありました。

過去の記事をご覧ください。
エラー内容は違いますが、参考になるかもしれません。

http://blog.be-style.jpn.com/article/53229893.html


@抜粋ですが、64bit用のJava環境を32bitにするとエラーが消えたという報告があります。
----------------------
【方法3】 64bitマシンを使っている人は、32bitのJava環境にすればうまくいく?
----------------------


Aこのようなコメントも頂いていました。
----------------------
【症状】Unity 3.5.x 系で Android SDK Toolsを r22 以上にすると同様の症状が発生します。
【原因】r22 以上ではビルド環境に変更が加えられており、古い Unity では対応できていない。
【対処】暫定的な対処ですが android-sdk/build-tools/17.0.0/ の中のものを全て android-sdk/platform-tools/ へ複製する。
----------------------
Posted by be-style at 2014年09月05日 00:21
返答ありがとうございます。
@に関しては、JDKを32bitにしてもうまくいかず。
Aに関しては、別のエラーのときに実行してうまくいき、今のエラーになっています。

JDKはx86という文字が入っているのが32bit版と聞きました。
Posted by 大山 将貴 at 2014年09月05日 10:38
32bit版はx86表記で大丈夫ですよー。

エラーの原因がなかなか判明しないですね。。。
色々環境設定をいじってどうしようもない状態になったら、
一度以前の状態に戻すという事を行っています。

今回の原因となったのが
「環境設定で[JAVA_HOME]と設定しJDKへのパスを通したら、動かなくなりました」
ということなのですが、JDKをバージョンアップされたのでしょうか?
そうでしたら、バージョンアップ前のJDKに戻しても問題は解決されませんでしょうか。

あと、Unityからビルドするときに、[Append]をして出力していると以前の設定が引き継がれることがありました。
[Replace]で、改めて上書きして解決したという事もありました。
Posted by be-style at 2014年09月05日 13:18
JDKは、もともと入っていないと思うので、新しくダウンロードして設定しました。

もともと入っていないというのは、今使っているパソコンがほかの人が使っていたものなので。

あとAppendとReplaceとは何でしょう。調べてみたのですが、どこにあるのかわかりません。
Posted by 大山 将貴 at 2014年09月05日 13:55
もともとAndroidに出力できていた時点でJDKは必ず入っているはずなのですが、今回、はじめてAndroid用に出力するようにしているのでしょうか。

それとも、パソコンが変わったということで、今使っているパソコンで環境設定をし直す必要が出ているということでしょうか。
それであれば、もとのパソコンの環境設定と見比べてみると良いと思います。

[Append]と[Replace]とは、Unityで出力するときに「Build Settings」を開きますよね。
その後、[Build]か[Build & RUN]を選択します。
[Build]を選択した後、追記(Append)するか、置き換え(Replace)するかウィンドウが出てきます。

先の私のコメントで言っていたのは、置き換え(Replace)を選択してはいかがでしょう、という事でした。
Posted by be-style at 2014年09月05日 17:49
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]