我有一个用C编写的可执行文件,经过编译可以在手机上使用,并且我想从我的Android应用程序启动它。
我已经使用ADB命令将其推送到/ data / local / tmp(这似乎是我们可执行可执行文件的文件夹)中,并使用chmod命令在其上设置可执行文件。当我手动启动它时,它工作正常,但是当我尝试从我的android应用程序运行它时,出现错误: 无法运行程序“ / data / local / tmp / myexec”(在目录“ / data / local / tmp”中):错误= 13,权限被拒绝。
我认为可能与文件夹有关,所以我在“ / sdcard”文件夹中尝试了相同的过程(清单文件中具有良好的android权限),但结果相同。
我也试图从script.sh启动它。错误13不再出现,但我的可执行文件似乎也没有启动。
这是我的代码:
private void launchExec() {
Runnable r = new Runnable() {
@Override
public void run() {
runtime = Runtime.getRuntime();
Process mlauchExecProcess = null;
try {
String[] cmdline = { "/data/local/tmp/myExec"};
String[] cmdarg = { "arg1", "agr2", "agr3" };
File dir = new File("/data/local/tmp/");
mlauchExecProcess = runtime.exec(cmdline,cmdarg,dir);
} catch (IOException e) {
e.printStackTrace();
}
}
};
t = new Thread(r);
t.start();
}
有什么想法吗?