我在 Android.mk 中使用“include $(BUILD_EXECUTABLE)”命令创建了一个可执行文件。我的要求是通过 abd shell 执行上面生成的可执行文件。
我试过了:
下面是我使用 ndk-build 命令编译的 C 代码:
#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时,会生成以下文件:
projectRoot->libs-> HelloExecutable
我的工作是在 adb shell 上执行上面生成的文件。所以我首先使用以下命令将文件推送到 sdcard 上:
adb push ~/projectRoot->libs->HelloExecutable /sdcard/
现在我使用以下命令切换到 adb shell:$adb shell命令(这里我使用的是模拟器)。
然后我将权限更改为:chmod 777 /sdcard/HelloExecutable
执行上述命令后,我将获得HelloExecutable文件的执行权限。
然后将当前工作目录更改为 sdcard。即cd /sdcard/
现在,当我尝试执行上述文件时,出现以下错误:
# ./HelloExecutable
./HelloExecutable: permission denied
要执行上述操作,我正在使用模拟器。那么有人可以告诉上述错误的原因吗?
我恳请观众解决上述问题。等待您的答复。提前致谢。