我有一个android项目,它依赖于第三方的仅限二进制的JNI库。使用ant,我可以在lib/中删除.so和jni/中的header,然后完成。
然而,我的android项目的其余部分使用maven,我希望能够将这个库集成到我现有的基于maven的项目中,就像我将任何其他库一样(即与<dependency />
条目,库自动从公司服务器下载)。
我已经尝试使用mvn deploy:deploy-file
与-Dpackaging=so
和-Dclassifier=armeabi
手动上传。so文件,并在zip中上传标题并使用-Dpackaging=har
部署。但是NDK仍然无法检测到库和头文件。
我的Android。可是
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)
和my pom
中的依赖项<dependency>
<groupId>com.thirdparty.my-dependency</groupId>
<artifactId>my-dependency</artifactId>
<version>1.0</version>
<classifier>armeabi</classifier>
<type>so</type>
</dependency>
在maven中部署第三方库的最佳方式是什么?
在对示例进行了一些修改之后,我设法使它能够编译。
部署很好,但是我发现我需要添加
LOCAL_SHARED_LIBRARIES := $(ANDROID_MAVEN_PLUGIN_LOCAL_SHARED_LIBRARIES)
include $(BUILD_SHARED_LIBRARY)
include $(ANDROID_MAVEN_PLUGIN_MAKEFILE)
到应用程序的Android.mk