ps: this question has been resolved. In fact, It caused by carelessness of myself. I compile library under one platform, and then use it in another platform. so finally, there isn't some needed library inside. so a joking!
I'm beginner for android development. Now, I want to re-compile the project(droidvncserver) and run this application in MTK platform. In this application JNI application was used to call a dynamic library named libdvnc_flinger_sdk17.so which is compiled in MTK's AOSP. so in JNI, call this library with dlopen function like this:
flinger_lib = dlopen(lib_name, RTLD_NOW);
Anymore, libvnc_flinger_sdk17.so call some system library such as libui.so, libgui.so, libbinder.so etc. The Android.mk used to get libvnc_flinger_sdk17.so write here:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES = \
flinger.cpp
#LOCAL_CFLAGS += -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
$(LOCAL_PATH)/..
LOCAL_PRELINK_MODULE:=false #override prelink map
LOCAL_MODULE:= libdvnc_flinger_sdk$(PLATFORM_SDK_VERSION)
LOCAL_MODULE_TAGS:= optional
LOCAL_MODULE_PATH := $(LOCAL_PATH)/../libs/$(TARGET_CPU_ABI)
LOCAL_SHARED_LIBRARIES := libgui libui libbinder libcutils libutils libskia
include $(BUILD_SHARED_LIBRARY)
In fact, The whole JNI applicaton was make as an executable program nameed libvncserver.so. and in java code I start another shell process to run libvncserver.so. Until now question is coming, when I run the whole project as android application in phone, logcat report a error: Error string: dlopen failed: cannot locate symbol "_ZN7android18getPixelFormatInfoEiPNS_15PixelFormatInfoE" referenced by "libdvnc_flinger_sdk17.so"
I have searched the function getPixelFormatInfo with command "objdump -s libui.so", and the result show that it existed in this system library. I also find in my phone this library existed in the directory of /system/lib too. Other more, I have push this library into /data/data/org.naiops.vnc/lib, but also don't wok, why that happended? how can i do?