当我尝试启动新进程时,它会找到一个要执行的文件(与它抛出不同异常之前一样),但会抛出异常访问被拒绝。 Here 是一个类似的问题,但从可能有问题的答案中,只有权利和权限部分对我有意义。还有一个想法是不将 RedirectStandardOutput 设置为 true 以查找错误,所以我禁用了这一行。 我是否需要一些特殊的权限、 list 条目或类似的东西才能从我的应用程序在 android 上启动新进程?
这是我的代码:
try
{
string strToFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), fileName = "stockfish-8-armeabi-v7a";
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = System.IO.Path.Combine(strToFolder, fileName);
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.WorkingDirectory = strToFolder;
//psi.RedirectStandardOutput = true;
//psi.RedirectStandardError = true;
stockfishProcess = new System.Diagnostics.Process();
stockfishProcess.StartInfo = psi;
stockfishProcess.Start();
}
catch (Exception e)
{
string estr = e.ToString();
initialized = false;
}
这是异常文本
最佳答案
尝试以各种方式处理我的问题时,我意外地找到了非常简单的问题解决方案。在我的代码之前缺少这两行。
string[] cmd = { "chmod", "744", Path.Combine(strToFolder, fileName) };
Java.Lang.Runtime.GetRuntime().Exec(cmd);
默认文件权限不允许执行该文件,因此必须对其进行更改。
关于c# - android 应用程序中 Process.Start() 上的访问被拒绝 (0x80004005),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44334015/