如何处理android ndk项目依赖项

时间:2013-07-19 03:44:49

标签: android android-ndk

我有两个本机支持的android项目,也就是说,它们都是android项目和c ++项目。一个是android库( app-lib ),另一个( std-pos-app )是依赖app-lib的android应用程序。

app-lib 中的Android.mk文件,如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := app-lib
LOCAL_SRC_FILES := ...
include $(BUILD_SHARED_LIBRARY)

当它被构建时,它将在libs / armeabi fiolder中产生libapp-lib.so。

std-pos-app 想要在 app-lib.so 中调用本机代码。所以 std-pos-app 中的Android.mk文件如下:

LOCAL_PATH := $(call my-dir)

#------------------
include $(CLEAR_VARS)
LOCAL_MODULE := app-lib1
LOCAL_SRC_FILES := path-to-libapp-lib/libapp-lib.so
include $(PREBUILT_SHARED_LIBRARY)
#------------------

include $(CLEAR_VARS)
LOCAL_MODULE    := std-pos-app
LOCAL_SRC_FILES := ...
include $(BUILD_SHARED_LIBRARY)

使用 PREBUILT_SHARED_LIBRARY 预构建 libapp-lib.so ,当构建 std-pos-app 时,libapp-lib.so和libstd -pos-app.so将出现在libs / armeapi中。但是当我想运行 std-pos-app 时,发生了错误:

  

生成最终存档时出错:找到APK的重复文件:lib / armeabi / libapp-lib.so

我知道它发生的原因,因为android项目依赖。 但是如何解决? Thx。

1 个答案:

答案 0 :(得分:0)

我发现了一个描述相同问题的相似主题。我已经解决了线程中的解决方案的问题。 How to use a library project with both c and java apis on Android