1

我有两个原生支持的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 文件夹中生成 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 项目依赖。但是如何解决呢?谢谢。

4

1 回答 1

0

我发现了一个描述相同问题的相似线程。我已经用线程中的解决方案解决了这个问题。如何在 Android 上使用带有 c 和 java api 的库项目

于 2013-07-20T13:43:10.163 回答