我正在尝试在android工作室项目中使用ARToolKit库。该库使用NDK共享库,因此我按照this指南将其包含在我的项目中。我也尝试过this问题的解决方案。
我认为这个问题不是针对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.
我意识到这些片段可能不是那么有用,所以我当然准备好重新开始你的指导并从那里发布新的错误消息。
任何想法都会受到赞赏和尝试。
答案 0 :(得分:0)
我终于找到了解决方案here。 .so
文件必须位于<project>/app/src/main/jniLibs/
,才能包含在.apk
中。之前,我已将它们放入libs文件夹中。
答案 1 :(得分:-1)
您可以在app文件夹中的libs文件夹中包含定位它们的库。