2
我有兩個Android項目,一個是共享庫,一個是我的應用程序的項目。這兩個項目都包含一些Java和一些本地代碼。當我嘗試運行我的APK我收到以下錯誤:Android庫項目與本機代碼包庫兩次在APK
錯誤產生最終的歸檔文件:找到重複文件APK:LIB/armeabi/libOEShared.so
我的共享庫被標記爲庫項目(Properties-> Android - >'Is Library'),以便我能夠使用它的Java代碼。這大概會複製libOEShared.so一次。
爲了將我的應用程序本機代碼與libOEShared鏈接起來,我使用了NDK預構建功能。這裏是我的Android.mk:
#include shared library
include $(CLEAR_VARS)
LOCAL_MODULE := OEShared
LOCAL_SRC_FILES := ../../../Shared/OEShared/libs/armeabi/libOEShared.so
include $(PREBUILT_SHARED_LIBRARY)
#build App library
include $(CLEAR_VARS)
LOCAL_MODULE := OEApp
LOCAL_SRC_FILES := OEApp.cpp
LOCAL_LDLIBS := -llog -lGLESv2 -lz
LOCAL_SHARED_LIBRARIES := OEShared
include $(BUILD_SHARED_LIBRARY)
不過,NDK還複製libOEShared到我的應用程序項目的lib文件夾中,造成兩人份存在於最終的APK。
如何將我的應用程序的本機代碼鏈接到libOEShared而不會自動複製?
謝謝你的時間,這給我造成了很多挫折。
如果這工作給你,然後接受它作爲答案。 – AndRSoid
謝謝你這工作。 – DJPJ