Unidad: API de Stockfish habilitada Android Error de tiempo de ejecución
– UnityAssets3Free
bienvenido , por aqui Camilo y en esta ocasion os traigo
esta unity pregunta
Estoy tratando de ejecutar el archivo stockfish armv7 (disponible aquí: https://stockfishchess.org/download/) en mi proyecto de Unity usando System.Diagnostics.Process
.
Sin embargo, recibo el siguiente mensaje de error (de adb logcat) cuando intento iniciar el proceso:
03-13 17:15:03.114 25020 27066 E Unity : Win32Exception: ApplicationName="/storage/emulated/0/Android/data/com.DefaultCompany.MyChessGame/files/stockfish.android.armv7.so", CommandLine="", CurrentDirectory='', Native error= mono-io-layer-error (5)
03-13 17:15:03.114 25020 27066 E Unity : at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x002dc] in <3df7f9ca50404bbc8bd4e7b954e70293>:0
03-13 17:15:03.114 25020 27066 E Unity : at System.Diagnostics.Process.Start () [0x0003a] in <3df7f9ca50404bbc8bd4e7b954e70293>:0
03-13 17:15:03.114 25020 27066 E Unity : at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
03-13 17:15:03.114 25020 27066 E Unity : at AI.Awake () [0x00076] in C:Program Files (x86)Unity ProjectsMy Chess GameAssetsGameScriptsPlayersAI.cs:62
mi código para el Android La compilación del proyecto Unity se ve así:
string fileName = Path.Combine(Application.persistentDataPath, "stockfish.android.armv7.so");
if (!File.Exists(fileName))
string _path = Path.Combine(Application.streamingAssetsPath, "stockfish.android.armv7.so");
UnityWebRequest request = UnityWebRequest.Get(_path);
request.SendWebRequest();
while (!request.isDone)
File.WriteAllBytes(fileName, request.downloadHandler.data);
Debug.Log(fileName);
Debug.Log(File.Exists(fileName));
p = new System.Diagnostics.Process();
p.StartInfo.FileName = fileName;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
O Debug.Log(File.Exists(fileName))
muestra que el archivo existe. no estoy seguro de qué mono-io-layer-error (5)
¿Está?
Estaría agradecido por cualquier ayuda.
Actualizar
Encontré esta lista de códigos de error de Win32:
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d
A partir de esto, creo que el problema puede ser que se denegó el acceso. En ese caso, tendré que averiguar cómo cambiar el acceso al archivo. ¿Alguien sabe cómo hacer esto en Unity?
0
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
eso es todo,hasta la proxima