新しいプロセスを開始しようとすると、実行するファイルが見つけられます(前とは異なる例外が投げられます)。 Hereも同様の問題ですが、権利とパーミッションの部分だけが問題になる可能性のある回答からわかります。エラーを見つけるためにRedirectStandardOutputをtrueに設定しないという考えもありました。この行を無効にしました。 アンドロイドのアプリケーションから新しいプロセスを開始するために、特別なアクセス許可、マニフェストエントリなどが必要ですか?アンドロイドアプリケーションで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が)です:のApplicationName = '/データ/ユーザー/ 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] in /Users/builder/data/lanes/4009/3a62f1ea/source/mono/mcs/class/System/System.Diagnostics/Process .cs:737
どのAndroidバージョンとROMをお使いですか? –
@ Samuel Tulachテスト用の私の電話は、製造元によってインストールされたデフォルトのROMを備えたアンドロイド6.0、電話Doogee x5 max proです。 – hoacin
他の電話でもテストしましたか?私は、コードが正しいとエラーがいくつかのROM固有の要件によって引き起こされることです。 –