cocos2dxでAndroidがエラーで起動しない(バージョン3.15への移行)

以前作成したアプリを、cocos2d-xフレームワークのバージョンアップしました。
cocos2d-x 3.6 -> 3.15

その際、Androidアプリを起動させようとするとエラーメッセージが出力され落ちる現象に悩まされました。
※トップ画面すら起動しない状況。

logcatのログメッセージを見ると以下のようなエラーが。

D/JniHelper(15291): JniHelper::setJavaVM(0xb505c280), pthread_self() = -1225142584
F/libc (15291): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 15291 (works.mamemaki3)

I/DEBUG ( 181): backtrace:
I/DEBUG ( 181): #00 pc 00000000
I/DEBUG ( 181): #01 pc 00ed629b /data/app/jp.rizworks.mamemaki3-1/lib/arm/libMyGame.so (JNI_OnLoad+26)

E/SharedPreferencesImpl( 534): Couldn’t create directory for SharedPreferences file shared_prefs/log_files.xml
W/ActivityManager( 534): Exception thrown during pause
W/ActivityManager( 534): android.os.DeadObjectException

W/WindowManager( 534): Failed looking up window
W/WindowManager( 534): java.lang.IllegalArgumentException: Requested window android.view.ViewRootImpl$W@2f30d23c does not exist

これに大分悩まされました。

結論からいうとmain.cppを誤って古いバージョンのもので上書きコピーしてしまった事が原因です。

cocos_android_app_initメソッドの内容が変わってるので注意してください。
古いバージョンのmain.cppの内容じゃ動きません。

起動時のJniHelper呼び出し直後にエラーとなっている事にもう少し注意していれば早く答えに行き着けたかもしれません。

とても辛い思いをしたので、この記事で誰かが救われれば幸いです。

私もこれでようやく本来の作業ができるようになりました。

ただ今日はもう精神的につらいのでやめときます・・・。
バージョン移行なんてしたくなかった。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です