0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

cocos2dx:unable to open executable

Last updated at Posted at 2015-06-10

今回は主にxcode6です。

昨日は、

●1・ゲーム1の申請を出したらxcodeが「Your account already has a valid iOS Distribution certificate」(証明書作ってるみたいだけどローカルにないよ)というエラーを出して申請させてくれない。証明書はローカルマシンにもインストール済み。
●2・ゲーム2でxcodeが「unable to open executable」というエラーを出して、あるはずの場所にファイルがないから実行できないよ、というが、実際にはそこにファイルはある。
●3・新ゲームの制作にとりかかるべくcocos2d-x-3.6のビルドをするが、途中で動作がおかしくなってビルドするふりしてなにもしない状態になり、環境を再構築することに。しかし、再度v3.6環境を構築してbuild_native.pyを実行すると、

Execute failed: java.io.IOException: Cannot run program "C:\android-sdk\build-tools\23.0.0.2\bin\aapt.exe" (in directory "C:\cocos2d-x-3.6\projects\vamp\cocos2d\cocos\platform\android\java"): CreateProcess error=2, ?w?????t?@?

といったエラーを出して、これが取れない。Mac環境はググれば直し方が出てくるが、Windowsは出てこない。

という三重苦に陥って、正直どうするんだこれと思いつつ寝て、朝起きたらストレスが半端ない状態で頭痛もしてましたが、今日再度取り組んで、全部解決しました。

●1・ゲーム1の申請を出したらxcodeが「Your account already has a valid iOS Distribution certificate」(証明書作ってるみたいだけどローカルにないよ)というエラーを出して申請させてくれない。証明書はローカルマシンにもインストール済み。

これは最初、ググって出てきた通りdistributionのプロビジョニングファイルのリネームをしましたがだめで、
以下のサイトを参考に証明書をrevokeして、再度登録したら通りました。

エラー:Your account already has a valid iOS Distribution certificate | MUSHIKAGO APPS MEMO
http://mushikago.com/i/?p=5507

●2・ゲーム2でxcodeが「unable to open executable」というエラーを出して、あるはずの場所にファイルがないから実行できないよ、というが、実際にはそこにファイルはある。

これは最初、以下のスタックオーバーフローの記事を参考にいろいろやってみましたが全部だめでした。

iphone - Unable to open executable - xcode - Stack Overflow
http://stackoverflow.com/questions/8746194/unable-to-open-executable-xcode

ということで次のスタックオーバーフローの記事。

build - Xcode - error: unable to open executable.....how to fix? - Stack Overflow
http://stackoverflow.com/questions/8345682/xcode-error-unable-to-open-executable-how-to-fix

ここにあることをヒントにコードを眺めていたら、同じファイルが2つあるのを発見。
1つを削除したら、あっけなくビルド成功でした。
追記2015/06/19:フレームワーク登録しているものがResourceにもあると同様にこのエラーが出ます。

1つのエラーでも、複数の理由で同じエラーが出る場合があるということですね。

●3・新ゲームの制作にとりかかるべくcocos2d-x-3.6のビルドをするが、途中で動作がおかしくなってビルドするふりしてなにもしない状態になり、環境を再構築することに。しかし、再度v3.6環境を構築してbuild_native.pyを実行するとエラーを出して、これが取れない。Mac環境はググれば直し方が出てくるが、Windowsは出てこない。

これが最もハマったのですが、cocos2dxの環境は、以前3.6で構築したものの、3.5_tizenのファイルを持ってくるだけではビルド環境が不完全だということがわかりました。cleanすると、不安定になるようです。

cocos2d-x - Cocos2dx 2.2.6から3.6への移行 (Windows Android環境) - Qiita
http://qiita.com/n2labo/items/d793b4dc205c3dbae124
(追記済み)

というわけで、いろいろ試行錯誤をしていたのですが、正直らちがあかない状況になってきたので、
3.6にこだわるのはやめて、下位バージョンでもいいので安定動作するバージョンを探しました。

ということで、3.4、3.5_tizenをダウンロードしてきてインストールしましたが、
3.5_tizenと3.6はだいぶ似たような構造らしく、build_native.pyを実行した時に以下のエラーが取れません。

Execute failed: java.io.IOException: Cannot run program "C:\android-sdk\build-tools\23.0.0.2\bin\aapt.exe" (in directory "C:\cocos2d-x-3.6\projects\vamp\cocos2d\cocos\platform\android\java"): CreateProcess error=2, ?w?????t?@?

これは、調べるとaapt.exeが32bitで、実行環境も32bitである必要があるらしいです。
これは以下のサイトでmacのほうは解決できるようです。

java - "aapt" IOException error=2, No such file or directory" why can't I build my gradle on jenkins? - Stack Overflow
http://stackoverflow.com/questions/22701405/aapt-ioexception-error-2-no-such-file-or-directory-why-cant-i-build-my-grad

Windows版はどうやらndkのバージョンが関係あるらしく、さらにJavaやndkのbit数も関係あるようで、組み合わせを全部試すわけにもいかず、結局build_native.pyを実行した時にエラーのでない3.4を使うことにしました。
ndk-r9d環境でビルドしてうまくいくのは、3.4までのようです。
(普通にインストールしてもエラーがでない環境があるかもですが、うちではそんな状況でした)

ちなみにjavaのExceptionなので、Javaを32bit、64bit両方の環境でbuild_native.pyしてみましたが、それだけでは直らないようです。

3.6環境でインストールして動いている人もググって見つけましたが、完全に同じ環境にしてやってみてもうちでは動かなかったので、やはりbit数問題があるかもしれません(それぞれのツールのbit数はさすがに詳細に書いてるところは少なかったです)。

あと海外には、3.6はビルドしてもなにも反応がなかったが.cprojectファイルをいじって動くようにした、という人もいました。ただこの人はどういじったかは忘れたとあったので(笑)、詳細はわからずじまいです。

いずれにしても動作環境を公式に示して欲しいところですね。

ということで、参考まで。
Good luck!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?