system.componentmodel.win32exception,尝试为Android运行stockfish二进制文件时

问题描述 投票:1回答:1

我正在Unity中创建国际象棋游戏。我想为Android构建游戏。对于AI,我使用的是Stockfish Chess Engine,尤其是“ Stockfish-9-arm64v8”文件,它是Android的二进制文件。我创建了一个C#脚本,该脚本创建了一个进程来运行此二进制文件并与之通信。当我尝试启动过程时,将引发异常->

try{
     mProcess.Start(); 
}
catch(Exception e){
    Helper.PrintString(e.GetType().ToString()); // ----------------(1)
    Helper.PrintString(e.Message); // --------------(2)
}

/* 
(1) is printing : 
 system.componentmodel.win32exception
(2) is printing : 
ApplicationName = 
'/storage/emulated/0/Android/data/com.chessmania.chess/files/Stockfish-9- arm64v8', CommandLine = '', CurrentDirectory = ''
*/

还有我的过程信息参数如下:

ProcessStartInfo si = new ProcessStartInfo() 
{
FileName = System.IO.Path.Combine(Application.persistentDataPath, "Stockfish-9-arm64v8"),
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true
};

有人可以帮我吗。我过去几天一直在尝试解决此问题,但无法解决。它与文件许可有关吗?我的意思是我应该在ProcessInfoParameters中包含一些参数以强制运行二进制文件吗?我真的不知道这是问题还是其他原因?如果我错了,请从头开始纠正我。

我只想将Stockfish Chess Engine与Unity Project集成在一起,并为Android平台构建它。如果有人有任何想法或建议,或者以前有人曾处理过类似的问题,请让我知道如何解决此问题。我将感激不尽。感谢您一直以来的支持:)

c# android unity3d process chess
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.