如何在Android Studio项目中包括共享库



我正在尝试在Android Studio项目中使用ArtoolKit库。该库使用NDK共享库,因此我遵循本指南将其包括在我的项目中。我还尝试了这个问题的解决方案。

我认为这个问题不是特定于ArtoolKit库,而是我误解了NDK共享库的用法。

共享库模块的我的android.mk文件看起来像这样(遵循上述问题):

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := artoolkit
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libc++_shared.so
include $(PREBUILT_SHARED_LIBRARY)

分别是这样(按照上述指南):

LOCAL_PATH := /Users/balance/SDKs/ARToolKit5
include $(CLEAR_VARS)
LOCAL_MODULE := artoolkit
LOCAL_SRC_FILES := android/libs/$(TARGET_ARCH_ABI)/libc++_shared.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

和.AAR模块:

include $(CLEAR_VARS)
LOCAL_MODULE := aRBaseLib-release
LOCAL_SHARED_LIBRARIES := artoolkit
include $(BUILD_SHARED_LIBRARY)

我添加了共享库模块作为.AAR模块的依赖项,从而在Arbaselib-Release中产生了此代码:

configurations.maybeCreate("default")
artifacts.add("default", file('aRBaseLib-release.aar'))
dependencies {
    implementation project(':artoolkit')
}

但是在尝试构建项目时,我会收到以下错误:

Gradle sync failed: Could not find method implementation() for arguments [project ':artoolkit'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

我意识到这些片段可能没有那么有用,所以我当然可以从您的指导开始并发布新的错误消息。

任何想法都将被赞赏并尝试。

我终于在这里找到了一个解决方案。.so文件必须位于<project>/app/src/main/jniLibs/中以包含在.apk中。以前,我将它们放入Libs文件夹中。

相关内容

  • 没有找到相关文章

最新更新