项目结构:
应用项目 - >取决于图书馆项目
Library Project有一个用于编译的jni库的文件夹
jniLibs.srcDirs = ['libs']
Run Code Online (Sandbox Code Playgroud)
我已经尝试将以下内容添加到build.gradle的android元素中,根据示例应用程序https://android.googlesource.com/platform/tools/build/+/2e1f7810edd76d92cee8d3e06bc4dec0c288adea/tests/ndkSanAngeles/build.gradle但是android库项目不支持productFlavours,因此汇编失败,"找不到项目中参数[dghdhd]的方法productFlavors()"
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilters "armeabi-v7a", "armeabi"
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法为Android库项目添加ndk支持?
这里我Android.mk在jni/文件夹中使用了这个文件.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Here we give our module name and source file(s)
LOCAL_MODULE := offlineDownload
LOCAL_SRC_FILES := offline_download.c
LOCAL_SHARED_LIBRARIES :=../lib/libpackext.so.1.0
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
并lib在项目目录中创建一个文件夹并放入我的预构建.so库并生成一个Android.mk包含以下内容的文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := packext
LOCAL_SRC_FILES := libpackext.so.1.0
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include
include $(PREBUILT_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
当我使用ndk-build -B命令时,我得到了对packageExtraction的未定义引用.在这里,我使用我的预建库函数意味着我无法将我的预建共享库链接到我的offlinedownload库.
所以任何人都请帮我解决这个问题.