- 公開日: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 件のコメント:
コメントを投稿