簡體   English   中英

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

[英]Android NDK in Eclipse :: (Cannot run program “ndk-build”: Unknown reason)

我迷失了嘗試使用CDT插件從eclipse構建我的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 )

在設置我的構建目標時:

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" 

然后在構建時將錯誤吐到控制台。 盡管它可以編譯並在設備上運行,但是我看不到任何構建輸出。

我在.bash_profile中具有以下變量的“ ndk-build”:

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

我可以從命令行正常使用ndk-build進行編譯。 看來Eclipse看不到我的PATH:

這是在Helios版本2的Mac OSX上。

編輯:好的,這樣編譯就可以了,並且構建的輸出實際上隱藏在該消息的下面,這遠非理想,因為當我需要查看已構建的項目時,我無法掩蓋它。 我如何擺脫它?

就我而言,我必須在eclipse中為我的ndk-build命令提供完整的路徑,以便進行構建:

Eclipse->您的Prj->右鍵單擊-> C / C ++構建->“構建器”組:“構建命令”的值應為如下所示的完整路徑(而不是“ ndk-build”)

/用戶/ vshakya / MySoftware / android-ndk-r8 / ndk-build

我希望這會在將來對其他人有所幫助,因為我浪費了大約30分鍾來解決這個問題。

請參考此鏈接了解android中的NDK配置

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

我遇到了同樣的問題,盡管http://developer.android.com/tools/sdk/ndk/index.html#Install上的描述可以很好地安裝NDK,但它並未涵蓋解決此常見問題的方法。

Eclipse似乎允許您在多個位置進行配置,可以通過“窗口”菜單進行全局修改,也可以通過“屬性”選項進行項目特定的配置。 最簡單的方法是在{Properties;中添加ndk-build的完整路徑(對於Windows為ndk-build.cmd)。 C / C ++構建}構建命令框。

可能看起來很蠢,但是您是否檢查了幾個控制台? 我可以想象有一個用於您引用的消息,另一個用於生成輸出。

另見 :答案有一個有趣的環節,處理的設置,但也與Eclipse集成。

就我而言,我必須在eclipse中提供ndk-build.cmd命令的完整路徑才能進行構建:

Eclipse->您的Prj->右鍵單擊-> C / C ++構建

C:\\ Prateek \\ android-ndk-r9 \\ ndk-build.cmd

更簡單的解決方案是使用Eclipse項目路徑中的ndk-build命令進行構建:

$PROJECT>ndk-build

每當您更改本機代碼時。

要在Eclipse上進行編譯,我遵循以下步驟:

  • 創建eclipse項目。
  • 在jni文件夾中添加本機代碼(.cpp)
  • 按照通常的結構創建Android.mk和Application.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := $$Add source files$$

LOCAL_LDLIBS := -lpcap

LOCAL_MODULE := libtest

LOCAL_C_INCLUDES := $$Path of the header files used$$

include $(BUILD_SHARED_LIBRARY)

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

Aplication.mk depends that the type of options you want
  • 當日食引發警告時,將鼠標置於jni代碼部分,並選中以下選項:“將項目轉換為本地代碼”,並將自動轉換項目。

下次編譯時,將調用ndk-build V = 1,先編譯本機代碼,然后再編譯Android部分。

注意:

您必須能夠在系統上的所有文件夾中使用ndk-build。 該命令檢測在何處被調用,並查找jni文件夾,以使用Android.mk編譯所有本機代碼。

尋找的基本結構是:

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

但是您可以修改Android.mk在其他路徑中查找代碼。

希望對您有所幫助!

紅杉是你的朋友。 自Indigo發行以來,它是Eclipse的一部分。

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

萬一您以某種方式只看到stdout而不看到stderr,請嘗試將stderr重定向到stdout。

ndk-build 2>&1

確保在Windows中使用“ absolutepath \\ ndk-build.cmd”而不是“ absolutepath \\ ndk-build”。 添加.cmd即可編譯而不會出現錯誤

除了系統環境。

在Eclipse中,還需要轉到preferences-> c / c ++ Build-> environment。 添加名稱為“ NDKROOT”且值設置為NDK安裝路徑的新變量。

這對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM