错误:共享_库缺少静态_库Android.mk 我有一个Android应用程序,它也有C++代码依赖性。p>
我想通过使用AOSP编译将此应用程序构建为系统应用程序 在我的android.mk中,我必须首先导入一个静态库(abc.a),然后使用它构建一个共享库(xyz.so) 我面临生成错误,错误为“错误:xyz(共享库android-arm64)缺少abc(静态库android-arm64)” Android.mk:错误:共享_库缺少静态_库Android.mk 我有一个Android应用程序,它也有C++代码依赖性。p>,android,c++,android-ndk,android-source,android.mk,Android,C++,Android Ndk,Android Source,Android.mk,我想通过使用AOSP编译将此应用程序构建为系统应用程序 在我的android.mk中,我必须首先导入一个静态库(abc.a),然后使用它构建一个共享库(xyz.so) 我面临生成错误,错误为“错误:xyz(共享库android-arm64)缺少abc(静态库android-arm64)” Android.mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := abc LOCAL_SRC_FILES := $(L
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := abc
LOCAL_SRC_FILES := $(LOCAL_PATH)/$(TARGET_ARCH_ABI)/abc.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
#LOCAL_LDFLAGS := -llog -ldl
LOCAL_MODULE := libxyz
LOCAL_SRC_FILES := \
xyz.cpp \
xyz1.cpp
LOCAL_STATIC_LIBRARIES := abc
LOCAL_CFLAGS += -Wall -Werror -Wno-unused-parameter -Wno-switch
#LOCAL_SDK_VERSION := 19
#LOCAL_NDK_STL_VARIANT := c++_static # LLVM libc++
include $(BUILD_SHARED_LIBRARY)
Cmakelists:
cmake_minimum_required(VERSION 3.4.1)
add_library( # Sets the name of the library.
abc
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
src/main/cpp/abc.cpp
src/main/cpp/abc.hxx
......................)
find_library( # Sets the name of the path variable.
log-lib
log pthread)
add_library( xyz
STATIC
IMPORTED )
set_target_properties( # Specifies the target library.
xyz
# Specifies the parameter you want to define.
PROPERTIES IMPORTED_LOCATION
# Provides the path to the library you want to import.
../../../../${ANDROID_ABI}/xyz.a )
target_link_libraries( # Specifies the target library.
abc
xyz ${log-lib} )
附加错误屏幕截图
平台构建系统与NDK使用的系统不同。没有
prebuild\u STATIC\u LIBRARY
或prebuild\u SHARED\u LIBRARY
这样的规则,因此这些规则不会被执行。平台使用构建\预构建
,您必须指定本地\模块\类
。有关示例,请参见
平台中根本不支持CMake
您可能也不想在平台中使用Android.mk。该构建系统(与ndk构建无关)已经过时好几年了。你会想用宋楚瑜所描述的