Setting up NDK library in Eclipse

edited August 2013 in Native

Currently i'm editing code using a text editor, but i'd like to import the native libraries for Android to work from within Eclipse.

How can i do this?

It seems that there are a number of different "projects" supplied (demo, photon-client, commons, loadbalancing, etc).

All of these reside in different folders and i don't believe these can be imported into eclipse "as-is".

Is there any recommended way to do this?

I assume that once i import all code files into my eclipse project i would also have to manually edit all build (make) files to correspond to new paths?

Any advice or info would help :)



  • Sorry, I can't really help you on this one.
    We use Visual Studio, vsandroid and WinGDB for Android NDK development and don't have a lot of experience with Eclipse. I am sorry, but we can't support additional IDEs
  • edited August 2013
    I guess it probably isn't relevant anymore but here is how I did it. It is not elegant but works.

    I assume you have Eclipse set up for NDK development.

    Copy the root folder of the SDK into your JNI directory and rename it to "Photon". You can delete all the directories within this folder with exception of "Photon-cpp","Common-cpp" and "LoadBalancing-cpp".

    Now copy "Photon-cpp", "Common-cpp" and "LoadBalancing-cpp" into your JNI directory. Delete all the subdirectories within these with the exception of "inc".

    Attached is a screenshot of my JNI directory.

    Now modify your in order to link the static libraries correctly. For reference my makefile looks like this:
    LOCAL_PATH := $(call my-dir)

    #Shared Library

    include $(CLEAR_VARS)

    LOCAL_MODULE := game_shared


    LOCAL_SRC_FILES := hellocpp/main.cpp

    FILE_LIST := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)


    LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \

    LOCAL_STATIC_LIBRARIES := photon-cpp-static-prebuilt common-cpp-static-prebuilt loadbalancing-cpp-static-prebuilt

    LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static box2d_static cocos_curl_static


    $(call import-module,CocosDenshion/android) \
    $(call import-module,cocos2dx) \
    $(call import-module,extensions) $(call import-module,external/Box2d)

    $(call import-add-path, $(shell pwd)Jni/Photon/Photon-cpp)
    $(call import-add-path, $(shell pwd)jni/Photon/Common-cpp)
    $(call import-add-path, $(shell pwd)jni/Photon/LoadBalancing-cpp)
    $(call import-module,common-cpp-prebuilt)
    $(call import-module,photon-cpp-prebuilt)
    $(call import-module,loadbalancing-cpp-prebuilt)

    You can of course ignore the Cocos2d and Box2d references.

    Finally, if you haven't already you need the following in your
    APP_STL := stlport_static
    APP_CPPFLAGS := -frtti
Sign In or Register to comment.