cocosIDEを触ってみたパート2
cocoIDEを触ってみたその後
こんにちは前回cocosIDEを触ったときにOne Click Publishingの機能が何度試してもNdk build failed! となってしまうと嘆いていた鈴木です。
今回は自分がハマったところと対処法を書いていこうと思います。
(試したのはAndroidのみなのでiPhoneはまた別の機会に)
自分の環境としては
AndroidSDK:r23.0.2
AndroidNDK:r9d
ANT :1.9.4
を使用しました。
NDKは最新を使ってしまうと必ずfaildになってしまうそうです。
過去のNDKをダウンロードする方法はこちらを参考にしてください。
##原因その1
何も考えずにPackage to APKボタンをクリック。
何も考えずにGenerateボタンをクリック。
すると出てくる下の文とBuild faildの文字……。
The android-platform of project "/Users/suzukikenta/Documents/cocos/Test/frameworks/runtime-src/proj.android" should be equal/larger than 21, but 10 is specified.
これはつまりGenerateの所のSDKのバージョンを10ではなく21とすればいいのかな?
##原因その2
21を選択してGenerateボタンをクリック!
なんだかガシガシ動いてくれてる!
もしかしてこのままで行けるのかな……!?
こんな簡単な事だったら前の時に解決してるよな〜。
どうせ今回もだめなんだろうな〜と思ってました。
結果はやっぱりだめでした。
さてとログを見ていこうかな。
/Users/suzukikenta/Documents/cocos/Test/frameworks/runtime-src/proj.android/../../js-bindings/cocos2d-x/external/curl/prebuilt/android/armeabi/libcurl.a(url.o):function IsPipeliningPossible: error: relocation overflow in R_ARM_THM_CALL
/Users/suzukikenta/Documents/cocos/Test/frameworks/runtime-src/proj.android/../../js-bindings/cocos2d-x/external/curl/prebuilt/android/armeabi/libcurl.a(url.o):function fix_hostname.isra.1: error: relocation overflow in R_ARM_THM_CALL
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [obj/local/armeabi/libcocos2djs.so] Error 1
ここが怪しいような気がする。(解決する前はそんなこと全く思わなかったくせに)
とりあえず
make: *** [obj/local/armeabi/libcocos2djs.so] Error 1
でググってみました。エラーって出てるし短いしという理由。
一番上のページから見ていきます。
おっ、初っ端から同じ症状のページにヒットした! ってこれ公式のコミュニティだ。
ちゃんと公式はチェックしましょうということですね。
どうやらfaildになった原因は
/Users/suzukikenta/Documents/cocos/Test/frameworks/runtime-src/proj.android/../../js-bindings/cocos2d-x/external/curl/prebuilt/android/armeabi/libcurl.a(url.o):function IsPipeliningPossible: error: relocation overflow in R_ARM_THM_CALL
/Users/suzukikenta/Documents/cocos/Test/frameworks/runtime-src/proj.android/../../js-bindings/cocos2d-x/external/curl/prebuilt/android/armeabi/libcurl.a(url.o):function fix_hostname.isra.1: error: relocation overflow in R_ARM_THM_CALL
ここのようですね。
これのエラーを回避するためには
Add
LOCAL_ARM_MODE := arm
to files
/runtime-scr/proj.android/jni/Android.mk
/js-bindings/bindings/Android.mk
をしてあげればよいとのことです。
指定通りに二つのAndroid.mkファイルを修正しました。
さてまたPackage to APKをしてみます。
SDKのバージョンを21にしてGenerateボタンをクリック!
またガシガシ動いてくれている!
これはいい予感がする!
いけました!
これにてAndroidのAPK化についてはこれで終わりにします。
次はiPhoneの方をやったりGitとの連携とかやっていけたらいいなと思っています。
何となくcocosIDEとうまくやっていけそうな気がしてきました。
みなさんもcocosIDEを触って情報を発信して頂けると助かります。