背景
我制作了一个使用 JNI 处理位图的小型 SDK(链接 here)。
它只有 2 个项目:一个示例项目(演示 SDK 的用法)和 SDK 本身。
SDK 项目是一个 Android 项目,其中包含一些 C/C++ 代码。
问题
出于某种原因,即使我创建了项目,一切都很顺利,现在我尝试获取库项目并将其导入 Eclipse,然后打开我制作的 CPP 文件,我明白了上面有很多错误,例如:
问题
为什么会发生?如何正确导入项目?我可以帮助使用它的人顺利导入它吗?
我试图用 JNI 创建一个全新的项目,只是(小心地)复制了我的库中的文件,它编译得很好,但这不是导入项目的好方法......
最佳答案
此 eclipse 错误经常发生,您的解决方案(启动一个空项目然后添加文件)是最快的解决方法,我们都在使用它。 另一种解决方案是删除 c 性质和 Android 性质并再次将这些性质添加到项目中(通常这也有效)。
创建新项目时,Eclipse 将添加它的性质和工具链。如果您导入一个旧项目,这些工具链/性质可能会被严重导入。
对于包含 c 和 c++ 的项目,您需要在“.project”文件中定义 cnature 和 ccnature。对于 Android,您需要 Android Nature。 要编译 android,您需要将 com.android.gcc 作为 .cproject 文件中定义的工具链。
根据 ADT/CDT/Eclipse 的版本,.cproject 中工具链的值(value)不同,因此它们不容易从机器导入到机器。
我的猜测是您遇到了一系列错误,因为 .cproject 文件生成错误。
编辑
经过 Android Developer 的进一步研究,可以通过以下步骤更快地绕过 Eclipse 由如何将原生性质添加到项目中而导致的限制:
从“.project”文件中删除“cnature”和“ccnature”
<nature>org.eclipse.cdt.core.cnature</nature> <nature>org.eclipse.cdt.core.ccnature</nature>
从 eclipse 工作区中删除“.cproject”文件
删除所有生成的文件和文件夹:libs、obj、gen 和 bin
通过“android 工具”上下文菜单重新添加对 android 的原生支持
谢谢安卓开发者。
关于android - 如何使用 JNI 代码正确导入 Android 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22263253/