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>