androideclipse:如何引用库项目&x27;来自另一个项目的NDK库?

androideclipse:如何引用库项目&x27;来自另一个项目的NDK库?,android,eclipse,android-ndk,libraries,Android,Eclipse,Android Ndk,Libraries,我有一个Android Eclipse库项目“Lib”,它包含用NDK构建的Java和C代码。我有另一个项目“应用程序”,它依赖于Lib。应用程序还包含Java和C。我的目标是拥有多个类似Eclipse应用程序的项目,每个项目都使用Lib项目 应用程序中的Java例程调用库中的Java例程,该例程调用库中的C代码。这可以在设备上完美地编译、链接和运行 现在我想添加一个从应用程序中的C代码到库中的C代码的调用。我的第一个问题是头文件。我需要包含lib项目中的头文件jni/lib jni,h: #i

我有一个Android Eclipse库项目“Lib”,它包含用NDK构建的Java和C代码。我有另一个项目“应用程序”,它依赖于Lib。应用程序还包含Java和C。我的目标是拥有多个类似Eclipse应用程序的项目,每个项目都使用Lib项目

应用程序中的Java例程调用库中的Java例程,该例程调用库中的C代码。这可以在设备上完美地编译、链接和运行

现在我想添加一个从应用程序中的C代码到库中的C代码的调用。我的第一个问题是头文件。我需要包含lib项目中的头文件jni/lib jni,h:

#include "lib-jni.h"
在应用程序中的.c文件中。为了实现这个#include,我认为我需要将Lib的jni/目录添加到应用程序的jni/Android.mk中的
LOCAL#C#u include
。我不想硬编码这个路径,如果可能的话,我想从Eclipse获得它。毕竟,我已经告诉Eclipse应用程序项目依赖于Lib项目,Eclipse知道如何在两者之间连接Java调用

通过将lib jni.h从lib的jni/目录复制到App的jni/目录,我暂时回避了第一个问题。现在应用程序的C代码已经编译,但不会链接;它得到一个未定义的值。在应用程序的Android.mk中,我需要告诉C链接器链接libLib.so。我试着在
本地\u LDLIBS
上放置-lLib,但没有成功。libLib.so位于
Lib/libs/armeabi/libliblib.so
中的Lib项目中。Eclipse知道将这个.so合并到它为应用程序构建的.apk文件中

有没有办法干净地解决这两个问题?

  • 将Lib的jni/目录添加到应用程序的
    LOCAL\u C\u INCLUDES
  • 将libLIb.so的引用添加到应用程序的
    LOCAL\u LDLIBS
  • 我用可能的解决办法来表述这些问题。我愿意接受任何解决办法。例如,如果使用
    LOCAL\u LDLIBS
    的方法错误,那么正确的方法是什么


    注意:由于App和Lib是在不同的时间构建的两个独立的Eclipse项目,我非常确定我不能在Lib的Android.mk中使用
    LOCAL\u EXPORT\u C\u INCLUDES
    ,以使Lib的jni/目录可供App的Anroid.mk使用-我尝试了,但没有成功。但是我已经准备好接受教育。

    我总是将
    LOCAL\u C\u INCLUDES
    设置为原始库,所以我认为这不是个坏主意。另一个解决方案是将外部库作为静态库包含在libs文件夹中,但我不确定它是否有效