2016年10月13日木曜日

【cocos2-dx Android】学習中につまづいた箇所

  • 公開日:2016年10月13日
  • 最終更新日:2016年10月15日

記事概要

cocos2d-xの学習中に発生したエラーと解決方法のまとめです。
忘備録的なメモですが、なにかの役に立てばと思いUPします。

使用している本(以下、教材)は

です。

環境

  • Android Studio 2.2.0
  • OS X El Capitan
  • android sdk 24
  • cocos2d-x 3.13.1

エラー

アプリ作成後、起動するとjava.lang.UnsatisfiedLinkErrorエラーが発生しました。
エラーの発生した手順は以下の通り。

  • cocos new コマンドでcocosプロジェクトを作成
  • Android studioでビルド
  • アプリを起動
  • エラー発生

エラー詳細は以下の通りです。

terminal
/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.sample.SampleGame, PID: 6777
  java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.sample.SampleGame-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libMyGame.so"
  at java.lang.Runtime.loadLibrary(Runtime.java:366)
  at java.lang.System.loadLibrary(System.java:989)
  at org.cocos2dx.lib.Cocos2dxActivity.onLoadNativeLibraries(Cocos2dxActivity.java:248)
  at org.cocos2dx.lib.Cocos2dxActivity.onCreate(Cocos2dxActivity.java:264)
  at android.app.Activity.performCreate(Activity.java:6289)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2655)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)
  at android.app.ActivityThread.access$900(ActivityThread.java:177)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:145)
  at android.app.ActivityThread.main(ActivityThread.java:5951)
  at java.lang.reflect.Method.invoke(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

libMyGame.soがないと怒られています。

解決方法

最初のビルドはcocosコマンドで実行します。

terminal

// プロジェクトフォルダに移動
cd {プロジェクトルート}

// ビルド
cocos run -s  {プロジェクトルート} -p android --android-studio

# ビルドオプション内容
# -s : プロジェクトのベースディレクトリ
# -p : ビルドするプラットフォーム、ios, android, mac, web, win32, linux

上記でビルドすると、

terminal

The directory 'android-13' can't be found in ANDROID_SDK_ROOT/platforms, please use --ap to set needed API level

が発生しました。
対策として、SDK ManagerでAndroid3.2をダウンロードし、build.gradleのminSdkVersionを10から16に変更しました。

変更後はビルドに成功してアプリが立ちあがりました。

まとめ

仕事上の理由で利用することになったcocosですが、結構使い易い印象です。
Unitiyに押され気味ですが、頑張って欲しいです。

以上です

注意

学習中なので、非効率な点があるかもしれませんが、ご容赦ください。 後で見直すので、気がついたら随時修正します。

学習本

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...