相关疑难解决方法(0)

如何使用gradle 0.7+将.so文件添加到android库项目中

项目结构:

应用项目 - >取决于图书馆项目

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 android-ndk android-gradle-plugin

34
推荐指数
2
解决办法
4万
查看次数

如何将预建的共享库链接到Android NDK项目?

这里我Android.mkjni/文件夹中使用了这个文件.

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库.

所以任何人都请帮我解决这个问题.

c android android-ndk

21
推荐指数
3
解决办法
4万
查看次数

标签 统计

android ×2

android-ndk ×2

android-gradle-plugin ×1

c ×1