facebook twitter hatena line email

Cocos2dx/プロジェクト実行android

提供: 初心者エンジニアの簡易メモ
2017年3月7日 (火) 14:25時点におけるAdmin (トーク | 投稿記録)による版 (Activityをカスタマイズしたい場合)

移動: 案内検索

androidのプロジェクト実行

androidの場合sdkのversionをあわせる

$ vi proj.android-studio/app/project.properties
$ vi cocos2d/cocos/platform/android/java/project.properties
$ vi proj.android/project.properties
target=android-25

以下のsdkのversionと合わせる

$ ls /Users/test1/Library/Android/sdk/platforms/*

プロジェクト実行

$ cocos run -p android -m debug -j 2

"問題が発生したため、[project]を終了します"のコンパイラエラー

Android NDK: WARNING: APP_PLATFORM android-24 is larger than android:minSdkVersion 9 in ./AndroidManifest.xml

Application.mkに以下追加

APP_PLATFORM := android-9
$ locate Application.mk
cocos2d/plugin/protocols/proj.android/jni/Application.mk
cocos2d/tools/simulator/frameworks/runtime-src/proj.android/jni/Application.mk
proj.android/jni/Application.mk
proj.android-studio/app/jni/Application.mk

参考:http://stackoverflow.com/questions/15872254/android-ndk-warning-app-platform-android-9-is-larger-than-androidminsdkversio

androidプロジェクトを開いてのビルド

直接androidプロジェクトを開いてビルドしても以下エラーとなり実行できない java.lang.UnsatisfiedLinkError: Couldn't load MyGame from loader dalvik.system.PathClassLoader

↓コマンドで一度compileするとできた。

android-studioだけをcompileする方法

$ cocos compile -p android --android-studio

AndroidManifestに権限追加

proj.android-studio/app/AndroidManifest.xml

以下などをmanifestタグ内に追加する

   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Activityをカスタマイズしたい場合

proj.android-studio/app/src/org/cocos2dx/cpp/AppActivity.java

public class AppActivity extends Cocos2dxActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       // ココらへんに差し込む
   }
   @Override
   protected void onStart() {
       super.onStart();
       // ココらへんに差し込む
   }
   @Override
   protected void onResume() {
       super.onResume();
       // ココらへんに差し込む
   }
   @Override
   protected void onPause() {
       super.onPause();
       // ココらへんに差し込む
   }
   @Override
   protected void onStop() {
       super.onStop();
       // ココらへんに差し込む
   }
   @Override
   protected void onDestroy() {
       super.onDestroy();
       // ココらへんに差し込む
   }
}

参考

Cocos2d-x 導入編-Mac開発環境構築について http://qiita.com/kazuhiro1128/items/73c39bfc450e7d0883af