android - 仅在eclipse中打开hello-jni.c文件时在eclipse中编译Hello-Jni失败

标签 android c++ eclipse android-ndk java-native-interface

我一直在不断尝试为 Android NDK 构建示例 HelloJni 示例项目。

我如何设置环境:

我按照文档中的入门说明进行操作:android-ndk-r10d\docs\Getting_Started/html/index.html:

  1. 下载 Eclipse Luna
  2. 下载 Android SDK
  3. 已下载 Android NDK:android-ndk-r10d
  4. 在首选项窗口 -> android -> NDK 中设置 eclipse 中的 NDK 安装文件夹。
  5. 导入了 hellp-jni 示例。
  6. 右键单击 HelloJni 项目 -> Android 工具 -> 添加 native 支持。
  7. 清理并构建项目。
  8. 在我的设备上运行 HelloJni 库(不是测试)

应用程序正在运行,一切正常,我可以在项目的 libs 文件夹中看到每个架构生成的 .so 文件(对于每个架构,例如 armebi、mips 等...)

这是一个打印屏幕,显示一切正常

enter image description here

奇怪的部分来了......

问题:

如果我在 eclipse 中打开 hello-jni.c 文件进行编辑或查看,我突然看到编译错误,我无法构建,也无法再运行该项目...

这是一个打印屏幕,显示在我打开文件后,我突然遇到编译错误:

enter image description here

我已经尝试但失败的:

  1. 添加 Android Native Nature,然后通过以下方式删除它: 删除 .project 文件, buildCommand 标签:org.eclipse.cdt.managedbuilder.core.genmakebuilde, buildCommand 标签:org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 并删除行: [自然]org.eclipse.cdt.core.cnature[/自然] [性质]org.eclipse.cdt.core.ccnature[/性质] [性质]org.eclipse.cdt.managedbuilder.core.managedBuildNature[/性质] [性质]org.eclipse.cdt.managedbuilder.core.ScannerConfigNature[/自然] 删除 .cproject 和所有已编译的文件。 然后添加回 Android Native Nature。

根据这个 stackoverflow 链接: Eclipse ADT - Unresolved inclusion jni.h

失败

  1. 一旦我得到错误(我不再得到它):无法启动 cygpath。 Cygwin 在路径上吗?] java.io.IOException:无法运行程序“cygpath”。所以我用谷歌搜索并更改了build设置以提供我的 NDK 安装文件夹的绝对路径:

根据这个 stackoverflow 链接: Unable to launch cygpath in android

这是一个打印屏幕: enter image description here

失败

  1. 将使用的工具从 Android GCC 编译器更改为 GCC C 编译器

根据这个 stackoverflow 链接: Android NDK build, Method could not be resolved

这是一个打印屏幕: enter image description here

失败

  1. 从一个 friend 那里复制一个 eclipse Luna 安装,这个项目正在为他工作。

失败

我已经为此花费了数小时,但我找不到任何解决方案来解释为什么会发生这种情况。

请帮忙

最佳答案

当您尝试在没有正确配置的情况下在 JAVA 工作区/透视图中编辑 C/C++ 文件时,这是一个常见问题。 您只需选择错误日志中的所有条目并将其删除

关于android - 仅在eclipse中打开hello-jni.c文件时在eclipse中编译Hello-Jni失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462754/

相关文章:

java - 对字符串的 Android Web 请求

android - 无法让 android MediaPlayer onCompletion 触发

c++ - 抽象类输出问题

Android 蓝牙快速设备发现

java - 如何在AsyncHttpClient中设置用户代理?

c++ - 在 C++ 和 Visual Studio 中通过 GetProcAddress() 与 DLL 函数交互

c++ - C/C++多进程访问同一个变量的方法

android - 与 adb 的连接已关闭,并且发生了严重错误。 - Ubuntu 12.04

Java 枚举构造函数未定义

java - jacoco:检查因参数无效而失败