我有一个依赖于第三方、仅二进制 JNI 库的 android 项目。使用 ant,我只需将 .so 放在 libs/ 中,将标头放在 jni/ 中即可。
但是,我的其余 android 项目使用 maven,我希望能够将这个库集成到我现有的基于 maven 的项目中,就像我将任何其他库一样(即带有一个<dependency />
条目,库自动从公司服务器下载) .
我尝试使用mvn deploy:deploy-file
with-Dpackaging=so
和手动上传 .so 文件-Dclassifier=armeabi
,并以 zip 格式上传标头并使用 .so 进行部署-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>
在 maven for android 中部署这样的第三方库的最佳方法是什么?