Thursday, February 9, 2012

[android-developers] How-to use a shared library in native-activity

I have an Android project with a native activity. This native activity uses a shared library named "main" (libmain.so file) for starting. ( with the code of ndk/samples/native-activity )

This app works fine.

the "main" module Android.mk file :


LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := main

LOCAL_SRC_FILES := main.cpp

LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM

LOCAL_STATIC_LIBRARIES := android_native_app_glue

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)


Now I want to add another shared library (for example a game engine) used by "main" library. I have built a "game" module (libgame.so).

But when I link the "main" with the "game", like this :

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := main

LOCAL_SRC_FILES := main.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../game

LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM

LOCAL_LDLIBS += $(LOCAL_PATH)/../../libs/$(TARGET_ARCH_ABI)/libgame.so

LOCAL_STATIC_LIBRARIES := android_native_app_glue

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)


with code no changes !
the app doesn't start anymore and I have this error in Logcat :


java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.myproject/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/data/com.mycompany.myproject/lib/libmain.so


This crash is due to adding link to a shared library ...

Why linking to a shared library make the app not loading (crash) ?

How to say the system to load the second shared-library ? (like System.LoadLibrary() in Java/JNI)

How can I use a shared library in a native android project (no-java / native-activity) ?

(I suppose it can be possible ... otherwise the native activity is quite limited ...)

Thanks ! :)

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment