gpt4 book ai didi

c# - Android 应用程序中的 Process.Start() 访问被拒绝 (0x80004005)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:56 25 4
gpt4 key购买 nike

当我尝试启动新进程时,它找到一个要执行的文件(与之前抛出不同的异常一样),但抛出异常访问被拒绝。 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;
}

这是异常文本

System.ComponentModel.Win32Exception (0x80004005): ApplicationName='/data/user/0/AlienChessAndroid.AlienChessAndroid/files/stockfish-8-armeabi-v7a', CommandLine='', CurrentDirectory='/data/user/0/AlienChessAndroid.AlienChessAndroid/files', Native error= Access denied at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x0018b] in /Users/builder/data/lanes/4009/3a62f1ea/source/mono/mcs/class/System/System.Diagnostics/Process.cs:737

最佳答案

尝试以各种方式处理我的问题时,我不小心找到了非常简单的问题解决方案。在我的代码之前缺少这两行。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com