Cocos2d-x v3.x … そろそろマジ勉強したい…
とりあえず今月は Youtube動画を見る
Cocos2d-x v3 C++ Tutorial 1 – Setting Up For iOS
https://www.youtube.com/watch?v=qXqgSNUf9Cc
… とりあえず cocosコマンドでプロジェクトを作るところまでは [とりあえず] OK ^^;
cocosコマンドは cocosを解凍したフォルダでね。
Cocos2d-x v3 C++ Tutorial 2 – Setting Up For Android On Mac
https://www.youtube.com/watch?v=2LI1IrRp_0w
… Android か… とりあえず Android NDK も入れてあるので試してみる ^^;
… このtutorialのやり方ではダメだった… orz
有識者に教わった方法は、
1.プロジェクトを作成(例:デスクトップに作成)
cocos new sample -p jp.co.tko.sample -l cpp -d /Users/xxx/Desktop
2. 作成したプロジェクトの proj.android フォルダをターミナルで開き ./build_native.py を実行
3. コンパイルを待つ間に cocos2d-xライブラリフォルダから以下のフォルダにある libフォルダをコピー
/Applications/cocos2d-x-3.2/cocos/platform/android/java/src/org/cocos2dx/
4. 作成したいかのフォルダにペースト
/Users/xxx/Desktop/sample/proj.android/src/org/cocos2dx/lib
5. Eclipseでプロジェクトをインポート
6. インポートしたプロジェクトを右クリックしてプロパティを表示。
Resource – Android を選択し、Library にある ../cocos2d/cocos/platform/android/java を削除
7. 実機に転送 … ^^
…でイケルはずが大ハマり…orz
実機でエラーで落ちるという…LogCatに出てるエラーログでググること1時間…
java.lang.UnsatisfiedLinkError: Native method not found: org.cocos2dx.lib.Cocos2dxHelper.nativeSetApkPath:(Ljava/lang/String;)V
http://discuss.cocos2d-x.org/t/java-lang-unsatisfiedlinkerror-nativesetapkpath-version-3-1-1/14726
何が悪いのかがよくわからないが、AndroidManifest.xmlがまずかったみたいです…
<activity android:name="org.cocos2dx.cpp.AppActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation">
<!-- Tell NativeActivity the name of our .so -->
<meta-data android:name="android.app.lib_name"
android:value="cocos2dcpp" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
の cocos2dcpp.so ファイルのところがダメみたいで、以下のように修正(activityの入れ子から出す感じ)
<!-- Tell NativeActivity the name of our .so -->
<meta-data android:name="android.app.lib_name"
android:value="cocos2dcpp" />
<activity android:name="org.cocos2dx.cpp.AppActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>