关于so读取第三方so路径的问题
最近在研究android 的 NATIVE-ACTIVITY
按照 官司方文档用下面的Android.mk编译,读取两个第三方库。但是在虚拟机和真机上运行时都 出现了问题,
错误为:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androidMainFunctionHelperTesting/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.androidMainFunctionHelperTesting-2/libAndroidMainFunctionHelperTesting.so
一直找不到错误原因。
最后在/data/app-lib/直接进行libAndroidMainFunctionHelperTesting.so。显示错误:
could not load libray"./obj/local/armeabi-v7a/libFramework.so ......
为毛它会去读取obj/local/armeabi-v7a/的.so,这个文件被安装在 /data/app-lib/com.androidMainFunctionHelperTesting-2下,同libAndroidMainFunctionHelperTesting.so同一个路径。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PATH := ./jni
LOCAL_MODULE := PreFramework
LOCAL_SRC_FILES := libFramework.so
include $(PREBUILT_SHARED_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PATH := ./jni
LOCAL_MODULE := PreCoreTools
LOCAL_SRC_FILES := libCoreTools.so
include $(PREBUILT_SHARED_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PATH := ./jni
LOCAL_MODULE := AndroidMainFunctionHelperTesting
LOCAL_LDLIBS += -L$(AARM)\usr\lib
LOCAL_LDLIBS += -L$(ANDK)\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi
LOCAL_LDLIBS += -L$(ANDK)\sources\android\obj\local\armeabi
LOCAL_LDLIBS += -L$(BoostLib)
LOCAL_LDLIBS += -landroid -llog
LOCAL_STATIC_LIBRARIES := android_native_app_glue
LOCAL_SHARED_LIBRARIES += PreFramework
LOCAL_SHARED_LIBRARIES += PreCoreTools
LOCAL_CFLAGS += -I$(BoostInclude)
LOCAL_CFLAGS += -I$(CodeInclude)
LOCAL_CFLAGS += -I$(HeadInclude)
LOCAL_CFLAGS += -I$(ProgrammingInclude)
LOCAL_CFLAGS += -I$(AARMTOOLS)\lib\gcc\arm-linux-androideabi\4.8\include
LOCAL_CFLAGS += -I$(AARM)\usr\include
LOCAL_CFLAGS += -I$(ANDK)\sources\cxx-stl\gnu-libstdc++\4.8\include
LOCAL_CFLAGS += -I$(ANDK)\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi\include
LOCAL_CFLAGS += -I$(ANDK)\sources\android\support\include
LOCAL_CFLAGS += -I$(ANDK)\sources\android\native_app_glue
LOCAL_CFLAGS += -fexceptions -D___ANDROID___ -DANDROID
LOCAL_CFLAGS += -DNDEBUG -DFRAMEWORK_NO_IMPORT -DCORE_TOOLS_NO_IMPORT
LOCAL_CFLAGS += -Wall -Wextra -Wfatal-errors
LOCAL_CFLAGS += -Wswitch-default -Wmissing-include-dirs
LOCAL_CFLAGS += -Wmissing-declarations -Wunreachable-code
LOCAL_CFLAGS += -Wfloat-equal
LOCAL_CFLAGS += -Winit-self
LOCAL_CFLAGS += -Wno-unused-local-typedefs
LOCAL_SRC_FILES += TestingLib.cpp \
TestingMain.cpp \
Testing/AndroidMainFunctionHelperTesting/TestingHelper.cpp
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)