Eclipse中的Android NDK ::(无法运行程序“ndk-build”:未知原因)

我正在尝试使用CDT插件从eclipse构build我的NDK项目,并且我得到错误: –

NDK (Cannot run program "ndk-build": Unknown reason) 

应用程序运行,但我松散了所有的生成过程的控制台输出,这是一个噩梦时,试图编译,我必须在命令行上做到这一点。

这是我如何到达: –

 I Downloaded and installed the CDT plugin for Eclipse. 

然后:

 Added my JNI folder and also your Android.mk in the JNI directory. 

然后:

 Go FILE / NEW / OTHER /C/C++ / ( Convert to a C/C++ Project ) 

在设置我的构build目标:

 Check the project, choose MakeFile Project and Other Toolchain click NEXT 

最后在项目属性中:

 PROJECT / PROPERTIES / C/C++ uncheck " use default build command" replace "make" with "ndk-build" 

然后,当它build立它吐出错误的控制台。 虽然它编译和使设备上运行的构build我不能看到任何生成输出。

我在.bash_profile中使用下列variables“ndk-build”:

 :$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$ANDROID_NDK 

我可以使用ndk-build从命令行进行编译。 看来,Eclipse不能看到我的path:

这是在Mac OSX,在Helios版本2。

编辑:好,所以这个编译好,从构build的输出是事实隐藏在这个消息下面,这是远非理想,因为当我需要审查什么项目已经build成我不能作为其掩盖。 我如何摆脱它?

Solutions Collecting From Web of "Eclipse中的Android NDK ::(无法运行程序“ndk-build”:未知原因)"

这可能看起来很愚蠢,但你有没有检查是否有几个游戏机? 我可以想象有一个你所引用的信息,另一个用于构build输出。

另请参阅:答案有一个有趣的链接,处理设置,但也与日食整合有关。

在我的情况下,我不得不在eclipse中给出完整的path给我的ndk-build命令,以便构build:

Eclipse – >你的Prj – >右键单击 – > C / C ++构build – >“构build器”组:“构build命令”的值应该是完整的path如下所示(而不是“ndk-build”)

/用户/ vshakya / MySoftware / Android的NDK-R8 / NDKbuild造

我希望今后能帮到别人,因为我只是浪费了30分钟才弄明白这一点。

在android中请参考这个链接进行NDKconfiguration

http://odroid.foros-phpbb.com/t181-how-to-install-android-ndk

我有同样的问题,尽pipehttp://developer.android.com/tools/sdk/ndk/index.html#Installing安装NDK的说明是好的,但它不包括解决这个频繁的问题。

Eclipse似乎允许你在多个地方configuration东西,你可以通过窗口菜单或项目特定的configuration通过属性选项进行全局修改。 最简单的是添加ndk-build的完整path(Windows的ndk-build.cmd)在{Properties; C / C ++ Build}生成命令框。

更简单的解决scheme,使用eclipse项目path中的ndk-build命令构build:

 $PROJECT>ndk-build 

每次你改变你的本地代码。

为了在eclipse上编译,我遵循下面的步骤:

  • 创buildeclipse项目。
  • 在jni文件夹中添加本地代码(.cpp)
  • 按照典型结构创buildAndroid.mk和Application.mk
 LOCAL_PATH:= $(call my-dir)
包括$(CLEAR_VARS)

 LOCAL_SRC_FILES:= $$添加源文件$$

 LOCAL_LDLIBS:= -lpcap

 LOCAL_MODULE:= libtest

 LOCAL_C_INCLUDES:= $$使用的头文件的path$$

包括$(BUILD_SHARED_LIBRARY)

 ----------------

 Aplication.mk取决于你想要的选项的types
  • 当eclipse抛出警告时,将鼠标放在jni代码部分,并检查选项:“将项目转换为本地代码”,并自动转换项目。

下一次你编译,ndk-build V = 1将被调用,编译本地代码,然后编译Android部分。

注意:

您必须能够在系统上的所有文件夹中使用ndk-build。 该命令检测到哪里被调用,并寻找jni文件夹,以使用Android.mk编译所有本地代码。

寻找的基本结构是:

  • $ PROJECT> JNI /
    • /Android.mk
    • /Application.mk
    • /code.cpp

但是您可以修改Android.mk以查找其他path中的代码。

我希望它能帮助你!

Sequoya是你的朋友。 自Indigo发布以来,它就是Eclipse的一部分。

http://www.eclipse.org/sequoyah/

在我的情况下,我不得不在eclipse中给出完整的path给我的ndk-build.cmd命令,以便构build:

Eclipse – >你的Prj – >右键单击 – > C / C ++构build

C:\ Prateek \ Android的NDK-R9 \ NDK,build.cmd

以防万一你只是看到你的stdout而不是stderr,试着redirectstderr到stdout。

ndk-build 2>&1

请确保在Windows中使用“absolutepath \ ndk-build.cmd”而不是“absolutepath \ ndk-build”。 它编译没有错误与.cmd添加

除了系统环境。

在Eclipse中,您还需要转到preferences-> c / c ++ Build – >环境。 添加名称为“NDKROOT”的新variables,并将值设置为NDK安装path。

这对我有用。