关于so读取第三方so路径的问题

pwy1984 2014-08-19 09:54:50
最近在研究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)
...全文
105 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
十三邵 2014-10-09
  • 打赏
  • 举报
回复
引用 楼主 pwy1984 的回复:
最近在研究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)
我也不知道,帮你顶一下吧。。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧