一人もくもく会 α verでサービス開始しました。
請求書作成システム α verでサービス開始しました。

cocos2d-jsでInvalid Native Object

cocos2d-jsにて、androidでrunしてみると、真っ黒で何も表示されない。 FPS表示は動いているのでうごいてはいるらしい。

android studioのログを見てみると下記のようなログが出力されていた。(抜粋)

js_cocos2dx_Node_isRunning : Invalid Native Object
(evaluatedOK == JS_FALSE)
JS: assets/script/jsb_prepare.js:254:Error: js_cocos2dx_Node_isRunning : Invalid Native Object
Evaluating main.js failed (evaluatedOK == JS_FALSE)

main.jsの評価に失敗しているということなので、 もしかすると何かしらwebでしか動かない構文があるのではないかと細かく調べてみたが、見つからない。

次にInvalid Native Objectを調べてみると、どうも実行時だけにでるエラーとのこと。 androidでのJavaScriptの実行時だけ何かエラーが出ているらしい。

最終的に、sceneに定義しているrunningメソッドをgoingという名前に変更したら動いた。 どうもSpriteクラスのメソッドを上書きしていておかしくなっていたらしい。

webだと単にJavaScript上でメソッドを上書きするだけだが、 実機だとc言語側でエラーが出るのでエラー時の挙動が変わってしまうようだ。