Skip to content

Setup for Android

moe-ichihara edited this page Mar 18, 2019 · 8 revisions

1. Cocos2d-x プロジェクトの作成

Cocos2d-xは予め導入済みであることを前提としています。

  • 以下のコマンドを実行してください。
    • cocos new SampleProject -p (1.) -l cpp -d (2.)
      1. バンドルIDを指定してください。
      2. 出力先のフォルダを指定してください。

以下、Cocos2d-xプロジェクトをSampleProjectとします。

2. プラグインの導入

  1. SampleProject/Classesフォルダに以下3つのファイルをコピーします。
    • MaioPlugin.h
      • Maioプラグインのヘッダファイルです。
    • MaioPlugin.cpp
      • Android向けのMaioプラグインの実装ファイルです。
  2. SampleProject/proj.android-studio/app/srcに以下のフォルダをコピーします
    • jp/maio/sdk/plugin/cocos/android/MaioPlugin.java
      • Android向けのMaioプラグインのネイティブファイルです。jpフォルダごとコピーしてください。

3. Android Studioの設定

  1. プラグインをプロジェクトに反映します。

    cocos2d-x 3.17 以上の場合

    ndk-build の場合

    • SampleProject/proj.android-studio/gradle.propertiesをテキストエディタなどで開き、PROP_BUILD_TYPE=cmakePROP_BUILD_TYPE=ndk-build に変更します。

    • SampleProject/proj.android-studio/app/jni/Android.mkをテキストエディタなどで開き、以下の箇所を編集します。

      LOCAL_SRC_FILES := $(LOCAL_PATH)/hellocpp/main.cpp \
                      $(LOCAL_PATH)/../../../Classes/AppDelegate.cpp \
                      $(LOCAL_PATH)/../../../Classes/HelloWorldScene.cpp \
                      # 以下を追加
                      $(LOCAL_PATH)/../../../Classes/MaioPlugin.cpp

    cmake の場合

    • SampleProject/CMakeLists.txtをテキストエディタなどで開き、以下の箇所を編集します。

      if(ANDROID)
       # change APP_NAME to the share library name for Android, it's value depend on AndroidManifest.xml
       set(APP_NAME MyGame)
       list(APPEND GAME_SOURCE
            proj.android/app/jni/hellocpp/main.cpp
            )
       # 以下を追加
       list(APPEND GAME_SOURCE
           Classes/MaioPlugin.cpp
           )
       list(APPEND GAME_HEADER
           Classes/MaioPlugin.h
           )

    cocos2d-x 3.17 未満の場合

    • SampleProject/proj.android-studio/app/jni/Android.mkをテキストエディタなどで開き、以下の箇所を編集します。
      LOCAL_SRC_FILES := hellocpp/main.cpp \
                      ../../../Classes/AppDelegate.cpp \
                      ../../../Classes/HelloWorldScene.cpp \
                      # 以下を追加
                      ../../../Classes/MaioPlugin.cpp
  2. プロジェクトをAndroid Studioで開きます。

    • Android Studioを起動します。
    • Open an existing Android Studio projectを選択します。
    • SampleProject/proj.android-studioを選択し、OKを押します。
  3. Maio Android SDKを導入します。

    maio-Android-SDK/Project Setup Android Studio

    • SampleProject/proj.android-studio/app/libsmaio.jarをコピーします。

    • SampleProject/app/build.gradleGoogle Play Servicesの設定を追加します。(既に存在する場合、追加する必要はありません)

      dependencies {
          implementation fileTree(include: ['*.jar'], dir: 'libs')
          implementation 'com.google.android.gms:play-services-ads-identifier:+'
          ...
      }
    • Android ManifestのApplicationタグの下に以下を追加します。

      <activity  
                android:name="jp.maio.sdk.android.AdFullscreenActivity"  
                android:configChanges="orientation|screenLayout|screenSize"  
                android:hardwareAccelerated="true"  
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >  
      </activity>
      <activity            
                android:name="jp.maio.sdk.android.HtmlBasedAdActivity"            
                android:configChanges="keyboardHidden|orientation|screenSize"            
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
      </activity>

    Android 4.4以下に対応する場合

    Android 4.4以下に対応する場合、AndroidがgradleのmultidexEnabledに対応していない為、別途実装が必要になります。

    Android 5以上にのみ対応する場合、以下のステップは飛ばしていただいて構いません。

    1. Applicationクラスを継承したクラスを作成します。

      • Applicationクラスを継承したクラスが既にある場合、以下のコードを追加してください。

        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this);
        }
      • Applicationを継承しているクラスがない場合、SampleProject/proj.anrdoid-studio/app/src/org/cocos2dx/cppフォルダ下に以下の内容のクラスを作成してください。

        package org.cocos2dx.cpp;
        
        import android.app.Application;
        import android.content.Context;
        import android.support.multidex.MultiDex;
        
        public class BaseApplication extends Application {
            @Override
            protected void attachBaseContext(Context base) {
                super.attachBaseContext(base);
                MultiDex.install(this);
            }
        }
        • クラス名はBaseApplication以外でも構いません。
        • パッケージ名は導入方法によって異なる場合がございます。
    2. AndroidManifest.xml<application>タグを以下のように修正します。

          ...
          <application
              android:name="org.cocos2dx.cpp.BaseApplication"
              ...>
              ...
          ...
      • BaseApplicationは作成したApplicationを継承したクラス名を記述してください。

      Cannot resolve symbol 'Multidex' と表示される場合

      • build.gradleに以下を追加してください。
        dependencies {
            ...
            implementation 'com.android.support:multidex:+'
        }

4. 広告の表示

https://github.com/imobile-maio/maio-iOS-SDK/wiki/Get-Started

5. ビルド方法

Android のビルドは Android Studio から直接実行できない為、以下にビルド方法を記載します。

  1. ターミナルを立ち上げます。
  2. 以下のコマンドでSampleProjectのフォルダへ移動します。
    • cd {SampleProjectのパス}
  3. 以下のコマンドでビルドを実行します
    • cocos compile -p android --android-studio
  4. ビルド完了後、Android Studio上で実行することで、実機またはシミュレータでアプリケーションの確認ができます。