将Android NDK依赖项部署到Maven库

5
我有一个 Android 项目,依赖于第三方的二进制 JNI 库。使用 Ant,我只需将 .so 文件放在 libs/ 目录下,头文件放在 jni/ 目录下即可完成。
然而,我的其他 Android 项目使用 Maven,我希望能够像集成其他库一样将这个库集成到现有的基于 Maven 的项目中(即使用 <dependency /> 条目,从公司服务器自动下载库)。
我尝试手动上传 .so 文件,使用 mvn deploy:deploy-file 命令,并使用 -Dpackaging=so-Dclassifier=armeabi,并将头文件打包为 zip 文件,使用 -Dpackaging=har 部署。但是 NDK 仍无法检测到该库和头文件。
我的 Android.mk 文件如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_LDLIBS := -llog
LOCAL_SHARED_LIBRARIES := my-dependency
LOCAL_SRC_FILES := test.cpp
include $(BUILD_SHARED_LIBRARY)

我的pom文件中的依赖关系

<dependency>
    <groupId>com.thirdparty.my-dependency</groupId>
    <artifactId>my-dependency</artifactId>
    <version>1.0</version>
    <classifier>armeabi</classifier>
    <type>so</type>
</dependency>

如果要在Android中使用第三方库,最好的部署方式是什么?

使用Maven。

1个回答

3

经过一些尝试,我设法使样例编译通过。

部署没问题,但事实证明我需要添加

LOCAL_SHARED_LIBRARIES := $(ANDROID_MAVEN_PLUGIN_LOCAL_SHARED_LIBRARIES)
include $(BUILD_SHARED_LIBRARY)
include $(ANDROID_MAVEN_PLUGIN_MAKEFILE)

在应用程序的Android.mk


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接