2

这是一个很长的故事,但我真的很感激任何帮助。

我正在windows下使用eclipse构建一个Android应用程序。该应用程序包含一个应用程序(我们称之为App)项目和两个库项目(我们称之为libAlibB)。

libB项目仅包含 java 代码(和 android 资源)。它引用了libA包含少量 java 类、大量 C++ 类和这些使用Swig.

反过来App项目引用libB项目

Android.mk通过在makefile中添加我自己的规则,我设法在 ndk-build 中处理构建的 swig 部分。所有这一切都运作良好。

最近我想尝试一下 eclipse managed ndk-builds,这样我就不必再通过控制台手动触发原生构建了。

因此,我添加了“本机支持”,libA并且(经过一些调整/配置)它确实正确构建了本机libA.so文件。

问题是自从我为我的库添加了本机支持并更新了 eclispe 的 android 插件(ADT、CDT、NDK)之后,就无法libA在其他项目中导入。似乎从未创建过 jar 文件。并且没有“删除本机支持”的选项。

它给我的错误libB是:

The container 'Android Dependencies' references non existing library 'D:\path\to\libA\bin\libA.jar'

和类似的东西App,但每个库一个:

The container 'Android Dependencies' references non existing library 'D:\path\to\libA\bin\libA.jar'

The container 'Android Dependencies' references non existing library 'D:\path\to\libB\bin\libB.jar'

所以我试图回去,并恢复项目中与本机支持相关的所有内容。所以,我必须通过控制台手动调用 ndk-build (它有效,共享对象被构建)。但是日食部分仍然失败并出现相同的错误。所以我现在怀疑插件更新了v22.0.0.v201305140200--675183

有人有想法吗?

谢谢。

**编辑 #1 **

我继续调查,并通过安装 Android SDK 的构建工具(现在 SDK 管理器中的单独包)设法部分解决了我的问题。

结果是我现在可以App在控制台中使用 ant 构建我的项目,但 eclipse 仍然不能。似乎 eclipse 正在尝试阅读/path/to/libA/bin/libA.jar,但创建的是/path/to/libA/bin/classes.jar

使用命令行构建App项目时,一个新问题是它不会从libA.

继续调查...

**编辑 #2 **

我设法解决了与未导入共享对象相关的问题。在其中创建了一个jni文件夹。这些makefile的唯一目的是导入lib,那里没有源文件(这就是我那里没有文件的原因)Application.mkAndroid.mk*.mk

但是 eclipse + ADT 22.0.0 仍然无法构建项目(搜索libA.jarlibB.jar不是classes.jar在每个位置)。

**编辑 #3 **

我继续调查,并删除了项目中与 eclipse 相关的所有内容(即.externalToolBuilders.project.cproject),并将它们重新导入到我的 eclipse 工作区中。现在构建系统设法为libA和导入 jar 库libB。但显然它不会触发 ndk-build (因为它们不再配置原生支持)。

4

0 回答 0