当我尝试启动新进程时,它发现要执行的文件(与以前一样抛出不同的异常),但会抛出异常访问被拒绝。 Here是一个类似的问题,但只有权利和权限部分对我来说可能是一个问题的答案。还有一个想法是为了找到错误而不将RedirectStandardOutput设置为true,所以我禁用了这一行。 我是否需要一些特殊的权限,清单条目或类似的东西来启用从我的应用程序在Android上启动新进程?Android应用程序中的Process.Start()访问被拒绝(0x80004005)
这是我的代码:
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;
}
而这是异常文本
System.ComponentModel.Win32Exception(0X80004005):应用程序名='/数据/用户/ 0/AlienChessAndroid .AlienChessAndroid/files/stockfish-8-armeabi-v7a', CommandLine ='', CurrentDirectory ='/ data/user/0/AlienChessAndroid.AlienChessAndroid/files', 本机错误=访问被拒绝 System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo)[0x0018b] /Users/builder/data/lanes/4009/3a62f1ea/source/mono/mcs/class/System/System.Diagnostics/Process .cs:737
你使用的是什么Android版本和ROM? –
@Samuel Tulach我的手机进行测试是Android 6.0的默认ROM由制造商,手机Doogee x5最大亲安装。 – hoacin
你在其他手机上测试过吗?我的事,代码是正确的,错误是由一些ROM的具体要求造成的。 –