[英]Access denied (0x80004005) on Process.Start() in android app
當我嘗試啟動新進程時,它會找到一個要執行的文件(就像它之前拋出不同的異常一樣),但會拋出異常訪問被拒絕。 這是一個類似的問題,但只有權利和權利部分對我來說可能是一個問題的答案。 還有一個想法是不將RedirectStandardOutput設置為true以便找到錯誤,所以我禁用了這一行。 我是否需要一些特殊權限,清單條目或類似的任何東西來啟用我在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 =在/ Users / builder / data / lanes / 4009 / 3a62f1ea / source / mono / mcs /中的System.Diagnostics.Process.StartWithCreateProcess(System.Diagnostics.ProcessStartInfo startInfo)[0x0018b]中拒絕訪問類/系統/ System.Diagnostics程序/ Process.cs:737
試圖以各種方式處理我的問題我不小心解決了我的問題。 在我的代碼之前,這兩行丟失了。
string[] cmd = { "chmod", "744", Path.Combine(strToFolder, fileName) };
Java.Lang.Runtime.GetRuntime().Exec(cmd);
默認文件權限不允許執行文件,因此必須更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.