2013-03-01 83 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