Android NDK构建,方法无法解决

时间:2014-04-18 13:59:17

标签: android eclipse android-ndk adt ndk-build

我有一个包含本机代码的Android项目。我可以通过调用ndk-build命令从命令行构建本机代码,没有错误或警告。但是当我在ADT中打开它时会显示以下错误。

enter image description here

错误消息:Method CallStaticIntMethod could not be resolved.项目中有许多类似错误的文件。

我仔细检查了配置,这就是我所拥有的。 Android构建,工具链和包含已正确配置(见下图)

enter image description here

enter image description here

enter image description here

必需的包含在Project Explorer中也可见,并且它们是有效的(非空并指向正确的头文件)。

enter image description here

但是当我Clean项目并Build时,错误仍然存​​在。关于如何解决这个问题的任何想法?

配置:ADT 22.6.2,NDK r9d(64位),OSX 10.9.2

3 个答案:

答案 0 :(得分:11)

经过一些挣扎的偏好,我终于找到了解决方案。这是NDK插件中的bug,已向AOSP报告但尚未修复。评论#50中描述了答案的过去。这是我们的工作顺序。

  1. 打开项目属性 - > C / C ++ Build - > 工具陈编辑
  2. Used Tools部分中,将Android GCC Compiler替换为GCC C Compiler。如果section为空,只需在其中添加GCC C Compiler条目。 enter image description here
  3. 打开项目属性 - > C / C ++一般 - > 路径和符号并添加要包含的h文件所在的目录。使用上移按钮将包含本地包含(在我的情况下为/AudioPlayer/jni)的文件夹添加到第一个位置。然后添加平台和工具链包括。内置包括应该留在最底层。 enter image description here 在我的例子中,工具链的完整路径包括如下所示。这些是原始Android GCC Compiler工具链的内置路径,我们已在步骤2中替换它。

    /Tools/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include
    /Tools/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include-fixed
    
  4. 确定按钮,清除重新构建项目。所有错误都必须消失。如果它们停留,请尝试从 Problems 视图中删除它们,然后再次重新构建项目。

  5. 更新:我找到了另一个地方,您可以在其中添加包含文件的路径。但它似乎依赖于Eclipse版本。 项目设置 - > C / C ++一般 - >处理器包括路径,宏等 - > CDT用户设置条目 - >添加。添加上面列出的路径后,不再有编译问题。发展很有趣。

答案 1 :(得分:0)

是的,它是由IDE引起的,不知道你的所有标题和你再次链接的任何lib的位置。错误由IDE的自动完成/错误系统生成。您可以在eclipse中修复包含,也可以将其作为首选项中的错误删除。

答案 2 :(得分:-1)

我遇到了类似的错误并通过转到project-> properties->发现选项并将发现配置文件从托管构建系统更改为GCC,从Android GCC编译器更改为GCC C Complier并更新包含后解决了这个问题目录。