2013-03-01 142 views
1

我已經使用「include $(BUILD_EXECUTABLE)」命令在Android.mk中創建了一個可執行文件。 我的要求是通過abd shell執行上面生成的可執行文件。Android:在adb外殼上執行程序

我想:

下面是我的C代碼這是使用NDK-build命令編譯:

#include <stdio.h> 
int main() 
{ 
    printf("\n\nHello World\n\n"); 
    return 0; 
} 

以下是我Android.mk文件內容:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := HelloExecutable 
LOCAL_SRC_FILES := hello.c 
include $(BUILD_EXECUTABLE) 

當我執行命令ndk-build f ollowing文件中生成:

projectRoot-> libs->HelloExecutable

我的工作是執行對亞行外殼上面生成的文件。

ADB推〜/ projectRoot-> libs-> HelloExecutable/SD卡/

現在我使用切換到ADB殼:$ ADB殼,所以我首先使用以下命令中的文件推到SD卡命令(這裏我使用一個模擬器)。

然後我改變權限爲:CHMOD 777/SD卡/ HelloExecutable

一旦執行上述命令,爲我的HelloExecutable文件執行權限。

然後將當前工作目錄更改爲sdcard。即CD/SD卡/

現在,當我嘗試執行上述文件,我得到以下錯誤:

# ./HelloExecutable 
./HelloExecutable: permission denied 

執行上述我使用的仿真器。那麼有人可以告訴上述錯誤的原因嗎?

我懇請觀衆解決上述問題。等待你的答案。提前致謝。

回答

1

檢查您的SD卡是否安裝了noexec選件。嘗試將文件複製到另一個分區,如/ data並從那裏執行。

+0

我該如何檢查noexec選項?如果啓用,那我該如何禁用它? – Zax 2013-03-04 01:07:34

+0

運行「mount」命令並查看SD卡分區是否包含「noexec」選項。 – 2013-03-05 00:54:46