我有一个 android 项目,它依赖于第三方,仅限二进制的 JNI 库。使用 ant,我可以删除 libs/中的 .so 和 jni/中的 header 并完成。
但是,我的其余 android 项目使用 maven,并且我希望能够将这个库集成到我现有的基于 maven 的项目中,就像我将任何其他库一样(即具有 <dependency />
条目,库自动从公司服务器)。
我尝试使用 mvn deploy:deploy-file
手动上传 .so 文件与 -Dpackaging=so
和 -Dclassifier=armeabi
,并以 zip 格式上传 header 并使用 -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 中部署这样的第三方库的最佳方法是什么?
最佳答案
在对示例进行了一些修补之后,我设法让它编译。
部署很好,但事实证明我需要添加
LOCAL_SHARED_LIBRARIES := $(ANDROID_MAVEN_PLUGIN_LOCAL_SHARED_LIBRARIES)
include $(BUILD_SHARED_LIBRARY)
include $(ANDROID_MAVEN_PLUGIN_MAKEFILE)
到应用程序的
Android.mk
关于maven - 将 android ndk 依赖项部署到 maven 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16213953/