2011-12-26 32 views
1

我正在嘗試使用Android NDK構建一個靜態庫。爲此,我已經安裝了Cygwin & android-ndk-r7。使用Cygwin的Android NDK錯誤:錯誤:GNUMAKE變量被定義爲無效名稱

要構建庫,我已經創建了所需的源文件和Android.mk文件。這些文件位於我的機器上的「D:\ NDK \ test」下。我的NDK工具安裝在「C:\ Android \ android-ndk-r7」中。& Cygwin文件位於「C:\ Cygwin \ http%3a%2f%2fcygwin.mirrors.hoobly.com%2f」 。因此在任何地點都沒有空間。

爲了構建庫,我啓動Cygwin並將其指向我的源文件和Android.mk文件所在的位置。然後給我生成命令我輸入「/ cygdrive/c/Android/android-ndk-r7/ndk-build」。在給上面的命令,我得到一個錯誤信息:

ERROR: Cannot find 'make' program. Please install Cygwin make package or define the GNUMAKE variable to point to it.

我通過幾個博客去了,接下來的解決方案對他們:

  1. 安裝在Cygwin安裝傑韋利文件夾下做出。這沒有做任何改變。

  2. 創建一個環境變量GNUMAKE並將其定義爲/ usr/bin/make。我也試圖定義這個變量在不同的位置:

    C:\Cygwin\http%3a%2f%2fcygwin.mirrors.hoobly.com%2f\bin
    C:\Android\android-ndk-r7\prebuilt\windows\bin
    C:\Android\android-ndk-r7

    但是隨着我得到了同樣的錯誤:

    ERROR: Your GNUMAKE variable is defined to an invalid name: C:\Android\android-ndk-r7 Please fix it to point to a valid make executable (e.g. /usr/bin/make)

所以看起來我不是指向正確的路徑。 有人可以告訴我GNUMAKE指向哪條路徑。

我也沒做-v我Cygwin的提示,下面的消息彈出(這讓我相信,有關Cygwin安裝一切都好):

$ make -v 

GNU使3.81

版權所有(C)2006自由軟件基金會,Inc. 這是免費軟件;請參閱複製條件的來源。 沒有保修;甚至不適用於適銷性或特定用途的適用性。

該程序爲Windows32構建而成

感謝您的幫助。

回答

14

從NDKr7開始,您不再需要Cygwin來構建庫。這是更簡單的方法。

  1. 在命令提示符下,導航到你的項目目錄:cd D:\NDK\test
  2. 確保您的本機代碼和Android。MK是在該目錄
  3. 呼叫NDK建造的JNI文件夾:C:\Android\android-ndk-r7\ndk-build

這應該做這一切爲你。

+0

感謝您的回覆。我現在可以建立圖書館。我想再確認一件事:在你的迴應中你提到了本地代碼。我相信這是用於Java應用程序。對?現在我只是想創建一個可執行文件,以便我可以將它傳輸到我的Galaxy SII上,然後從那裏運行它來執行文件I/O。我的Make文件就是編譯C源代碼並將其構建到可執行文件中。這聽起來不錯,或者我需要一個完整的應用程序的Java代碼? – user1116700

+0

當我們說Native時,我們的意思是非Java,或者說是代碼不在虛擬機上運行。你構建的只是庫,所以你仍然需要一些東西來運行程序並與他們交談,所以是的,你需要Java或者你可以構建一個完全本地的Activity。 NDK提供了這樣一個活動的例子。 – Phonon

+0

我使用$(BUILD_EXECUTABLE)創建了NDK可執行文件 要在沒有生根的情況下在我的手機(Samsung Galaxy S2)上運行此可執行文件,我將其推送到/ data文件夾: adb push D:\ NDK \ test/data/local/tmp 爲了驗證,我通過cd進入了data/local/tmp文件夾,然後我可以使用ls來查看文件。現在運行我輸入./test的可執行文件,但出現錯誤: 「權限被拒絕」。 我是NDK&Android的新手,因此我不確定是否缺少創建可執行文件或在手機上使用它的任何步驟。如果您有任何想法,請告訴我。 – user1116700

1

我苦練錯誤gygwin終端「gnumake的變量定義無效名」之後,我去,我們只是刪除無論是在系統和用戶環境變量的gnumake的路徑中刪除這個錯誤的位置可變,如果你創建它....

mycomputer>系統屬性>高級系統設置>環境變量