目的
Unityで作成したAndroidアプリを実機で動かしたい
経緯
- PythonのプログラムをPyinstallerでexe化
pyinstaller hoge.py --onefile
でコマンド実行 参考
- Unityから上記のexeを実行
c#
1 private string FS = Path.DirectorySeparatorChar.ToString();//ファイルセパレーター 2 //exeがある場所 3 private string pyExePath; 4 //Resourcesフォルダのパス 5 private string ResourcesPath; 6 //実行したいスクリプト名 7 private string scriptname = @"hoge.exe"; 8 private string args; 9 10 private void Start() 11 { 12 ResourcesPath = Application.dataPath + FS + "Resources"; 13 pyExePath = ResourcesPath + FS + scriptname; 14 args = ""; 15 } 16 17 public string callPython(string text) 18 { 19 //外部プロセスの設定 20 System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift_jis"); 21 ProcessStartInfo processStartInfo = new ProcessStartInfo() 22 { 23 FileName = pyExePath, //実行するファイル(python) 24 UseShellExecute = false,//シェルを使うかどうか 25 CreateNoWindow = true, //ウィンドウを開くかどうか 26 RedirectStandardOutput = true, //テキスト出力をStandardOutputストリームに書き込むかどうか 27 StandardOutputEncoding = enc, //エンコード 28 Arguments = args + " " +text, //実行するスクリプト 引数(複数可) 29 }; 30 31 //print("-------------start"); 32 //外部プロセスの開始 33 Process process = Process.Start(processStartInfo); 34 35 //ストリームから出力を得る 36 StreamReader streamReader = process.StandardOutput; 37 string str; 38 string lines=""; 39 string result=""; 40 while ((str = streamReader.ReadLine()) != null) 41 { 42 if (str.StartsWith("-")) 43 { 44 result = str; 45 print("str:"+str); 46 } 47 //print(str); 48 lines += str+"\n"; 49 } 50 51 //外部プロセスの終了 52 process.WaitForExit(); 53 process.Close(); 54 //print(lines); //コンソールログ 55 this.logger.Log(lines); //LogFile出力 56 57 //print("------------end"); 58 59 return result; 60 }
- Unityのプログラムを実機でテスト
USBデバッグでスマホ(Xperia,Android7.0)を接続しUnityでビルド&実行
(Android SDKのmonitor.bat でログ取得 参考)
エラーが出たのでpythonの__file__
をsys.argv[0]
に修正 参考
- 修正後再度実行
下記エラー発生(monitor.batのログ)
Level:E
Tag:Unity
Text:Win32Wxception: ApplicationName='/data/app/***-2/base.apk/Resources/hoge.exe', CommandLine=' ***', CurrentDirectory='', Native error=Cannot find the specified file
Pythonのプログラムはexe単体で実行可能で
UnityのプログラムもPCではエラーなく動作するので
「指定されたファイルが見つからない」のは
「どこのプログラムから」「どのファイルが」見つからないのかわかりません
エラーコードで検索してみたのですがMac環境で発生した場合だったり
同様の事例は見つけられませんでした。
ご教授願います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/01 02:47
2020/05/01 05:20
2020/05/03 01:21
2020/05/03 03:26
2020/05/04 00:29
2020/05/04 04:17