MATLAB Answers

Standalone GUI application crashes with error and GUI python package closes immediately, does not stay open

6 views (last 30 days)
jchaliss
jchaliss on 6 May 2018
Commented: jchaliss on 12 May 2018
I created a standalone executable version of a GUI but it opens the GUI for an instance and crashes with "not enough input arguments" error, when run from a folder that does not contain the related GUI .m/.fig files, for e.g. while running directly from the desktop. The line of error is from the main GUI m-file shown below. The application runs as expected when run from the folder containing all the accompanying files.
gui_mainfcn(gui_State, varargin{:});
I was also trying to create a python package of the same GUI, but a similar experience with the GUI not staying open. Simply shows the GUI instantaneously but closes immediately with no particular error message.

  0 Comments

Sign in to comment.

Accepted Answer

Harsh
Harsh on 9 May 2018
It appears that the GUI was made using App Designer / Guide and relies on dependent files being present in the current directory. Note that a compiled application behaves more consistently if it avoids accessing or changing the current directory. A more reliable way is to base all file locations on a known root i.e. ctfroot for deployed applications. For example:
load('c:/Work/MATLAB/data.mat')% creates dependency on file structure
% Instead use
[pathstr,name]=fileparts(which('data.mat'));
load(name);
Detailed examples on managing path for deployed applications can be found here: https://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/
To further narrow down the exact point of error, on a Windows Machine before compiling, Under Additional runtime settings -> uncheck "Do not display the Windows Command Shell' and check 'Create log file'.
The Python error is also likely connected to the path issues of the standalone application.

  1 Comment

jchaliss
jchaliss on 12 May 2018
Thanks Harsh! The standalone application problem was indeed related to the usage of path and trying to load/save mat files to a certain path. Also, the log file option helped narrow down the error.
For the python, the problem still remains. I'm trying to build a python lib of the same GUI so that it can be used cross platform and so that thinking I need not build the same app on a Linux system. Is path handling different for python libs? Is there a way to generate a error report like the standalone exe for the python version as well?

Sign in to comment.

More Answers (0)

Sign in to answer this question.