I managed to build Cocos2d-x with FMOD on Android. Here is what I did:
1. cocos2d-x setup.py: add "/" at end of each NDK and ANT directory
2. Copy fmod classes to project dir (eg. projectDir/fmodClasses/inc_android )
3. Add ALL cpp and library files to Android:
- edit /proj.android-studio/app/jni/Android.mk
------------------------------Android.mk-----------------------------------
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libfmodL
LOCAL_SRC_FILES := ../../../fmodLib/android/debug/libfmodL.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libfmod
LOCAL_SRC_FILES := ../../../fmodLib/android/release/libfmod.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libfmodstudioL
LOCAL_SRC_FILES := ../../../fmodLib/android/debug/libfmodstudioL.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libfmodstudio
LOCAL_SRC_FILES := ../../../fmodLib/android/release/libfmodstudio.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../../Classes/AppDelegate.cpp \
../../../Classes/HelloWorldScene.cpp \
../../../Classes/FMODAudioEngine_android.cpp \
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes \
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../fmodClasses/inc_android/lowlevel \
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../fmodClasses/inc_android/studio \
# _COCOS_HEADER_ANDROID_BEGIN
# _COCOS_HEADER_ANDROID_END
LOCAL_STATIC_LIBRARIES := cocos2dx_static
# _COCOS_LIB_ANDROID_BEGIN
# _COCOS_LIB_ANDROID_END
LOCAL_SHARED_LIBRARIES := libfmodstudioL
LOCAL_SHARED_LIBRARIES += libfmodL
LOCAL_SHARED_LIBRARIES += libfmodstudio
LOCAL_SHARED_LIBRARIES += libfmod
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
# _COCOS_LIB_IMPORT_ANDROID_BEGIN
# _COCOS_LIB_IMPORT_ANDROID_END
----------------------------------------------------------------------------
4. Install Java Development Kit (jdk)
5. Edit file: /AppName/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java
- under: protected void onLoadNativeLibraries() after System.loadLibrary(libName)
System.loadLibrary("fmodL");
System.loadLibrary("fmodstudioL");
System.loadLibrary("fmod");
System.loadLibrary("fmodstudio");
- under: protected void onCreate(final Bundle savedInstanceState) at the end
org.fmod.FMOD.init(this);
- under: protected void onDestroy() before super.onDestroy();
org.fmod.FMOD.close();
6. Include fmod.jar in Android Studio
- Drag fmod.jar to libcocos2dx/src in Android Studio
(path: /AppName/cocos2d/cocos/platform/android/java/src/fmod.jar)
- Right-click fmod.jar and select "Add to library" select libcocos2dx in popup-box.
7. Copy MasterBank.bank and MasterBank.strings.bank to proj.android-studio/app/assets or build
to Resource dir in FMOD Studio. Then #define FILE_PREFIX "file:///android_asset/Mobile/" FMODAudioEngine_android.cpp
8. Teminal command to build:
cocos compile --android-studio --target android-22 --ap android-22 --ndk-mode debug
--ndk-toolchain arm-linux-androideabi-4.9 --platform android --app-abi armeabi