Error when using uigetdir() in deployed MATLAB application (java.lang.IllegalArgumentException: eval requires a valid MCR id when running in standalone mode)
Ältere Kommentare anzeigen
When calling uigetdir() in a deployed application I get this error sometimes, seemingly more often than not. I can't seem to find anything about this online.It might be related to my resent switch to 2018a.
Error using matlab.ui.internal.dialog.FolderChooser/doShowDialog (line 70)
Java exception occurred:
java.lang.IllegalArgumentException: eval requires a valid MCR id when running in standalone mode.
at com.mathworks.jmi.NativeMatlab.PostMatlabMessage(Native Method)
at com.mathworks.jmi.NativeMatlab.postMatlabMessage(NativeMatlab.java:224)
at com.mathworks.jmi.NativeMatlab.postMatlabMessage(NativeMatlab.java:240)
at com.mathworks.jmi.MatlabLooper.postMatlabMessage(MatlabLooper.java:150)
at com.mathworks.jmi.MatlabMCR.postAsync(MatlabMCR.java:1542)
at com.mathworks.jmi.MatlabMCR.eval(MatlabMCR.java:518)
at com.mathworks.jmi.Matlab.eval(Matlab.java:1197)
at com.mathworks.jmi.MatlabPath$PathCallback.completed(MatlabPath.java:1449)
at com.mathworks.jmi.MatlabMCR$InterestHandler.messageReceived(MatlabMCR.java:1663)
at com.mathworks.jmi.NativeMatlab.ProcessPendingEvents(Native Method)
at com.mathworks.jmi.NativeMatlab.processPendingEvents(NativeMatlab.java:508)
at com.mathworks.jmi.AWTUtilities$MatlabLatch.safeWait(AWTUtilities.java:892)
at com.mathworks.jmi.AWTUtilities$MatlabLatch.waitFcn(AWTUtilities.java:907)
at com.mathworks.jmi.AWTUtilities$Latch.acquire(AWTUtilities.java:770)
at com.mathworks.jmi.AWTUtilities$Invoker.invoke(AWTUtilities.java:500)
at com.mathworks.jmi.AWTUtilities.invokeAndWaitInternal(AWTUtilities.java:250)
at com.mathworks.jmi.AWTUtilities.invokeAndWait(AWTUtilities.java:111)
Error in matlab.ui.internal.dialog.FolderChooser/show (line 48)
Error in uigetdir_helper (line 32)
Error in uigetdir (line 61)
Error in Settings_Window>Select_Output_Report_Callback (line 275)
Error in gui_mainfcn (line 95)
Error in Settings_Window (line 42)
Akzeptierte Antwort
Weitere Antworten (8)
Stefanie Schwarz
am 6 Jun. 2018
1 Stimme
This is a known bug in MATLAB R2018a. Please refer to the below Bug Report for workaround instructions: https://www.mathworks.com/support/bugreports/1729458
1 Kommentar
William Warriner
am 20 Jul. 2018
One thing I'd caution other users who might use the workaround is that the default behavior of the built-in uigetdir is to return 0 if cancel or X is pressed (i.e. for JFileChooser.CANCEL_OPTION in the workaround).
Roberto Spreafico
am 18 Apr. 2018
0 Stimmen
I have the same problem with the uigetdir() function with the same Matlab version (R2018a)
Honghua Hu
am 21 Apr. 2018
0 Stimmen
The same symptom here, after I switch to 2018a...
1 Kommentar
Nate Ellingson
am 23 Apr. 2018
Marco Witte
am 8 Mai 2018
0 Stimmen
After switching to 2018a I got the same problem. This is very annoying, especially if I think about the amount we pay each year for the maintainace Service to mathworks...
8 Kommentare
Nate Ellingson
am 8 Mai 2018
Bearbeitet: Image Analyst
am 29 Mai 2018
Brent Kostich
am 29 Mai 2018
I don't know if it's relevant. But it seems MathWorks posted a workaround on this bug (Same link Nate posted above). I tried it out and it fixed this issue in my deployed application.
Nate Ellingson
am 29 Mai 2018
Image Analyst
am 29 Mai 2018
To me that workaround is not worth it and I'm going back to R2017b. Imagine if you put in all that code just to workaround a bug, then they fix the bug in the next version, and now you have to rip out all that complicated code and go back to the original, simple call to uigetdir()? And I'm constantly compiling and rolling out apps so I'd have to figure out which ones I put all that messy code in and fix them all. Too much work. For what I need, R2017b still works - I'm not using any of the new R2018a features so I'll just wait. I guess I should have tested the prerelease!
Nate Ellingson
am 29 Mai 2018
Nate Ellingson
am 29 Mai 2018
Peter Bottelier
am 6 Jun. 2018
Thanks Nate. Very helpful. I too experienced the same R2018a behaviour w.r.t. built-in uigetdir.m. It's rather annoying MathWorks did not detect this during release validation testing (apparently). @MathWorks, please improve testing your basic function tests!
William Warriner
am 20 Jul. 2018
Thanks Nate, helped me a bunch! One thing I'd caution other users who might download the attachment is that the default behavior of the built-in uigetdir is to return 0 if cancel or X is pressed (i.e. for JFileChooser.CANCEL_OPTION in the workaround).
I am also posting this as feedback to the bug report given below.
Rohan R
am 7 Jun. 2018
0 Stimmen
I see there are 3 uigetdir.m files. All the three need to be modified/replaced?
/usr/local/MATLAB/MATLAB_Runtime/v94/mcr/toolbox/matlab/connector2/shadowfiles/shadows/uigetdir/uigetdir.m /usr/local/MATLAB/MATLAB_Runtime/v94/mcr/toolbox/matlab/uitools/uigetdir.m /usr/local/MATLAB/MATLAB_Runtime/v94/mcr/toolbox/compiler/mdwas/mcr/uigetdir.m
1 Kommentar
Nate Ellingson
am 8 Jun. 2018
Victor Gonzalez
am 13 Jul. 2018
0 Stimmen
This bug is marked as fixed with update 4, but in my deployed application the problem persists, the workaround is again the only "solution"
D. Plotnick
am 31 Jul. 2018
0 Stimmen
I am also still seeing this issue with Update 4.
2 Kommentare
Steven Lord
am 31 Jul. 2018
Updating is one part of the fix. Recompiling the application and contacting Support for the R2018a Update 4 Runtime to be installed where the application will be run are the other two pieces. Can you confirm that you have completed all three parts and still experience the bug? If so I recommend contacting Support and working with them to determine why the fix has not resolved the issue.
D. Plotnick
am 12 Sep. 2018
I meant to respond on this; the third stage is the key step that I did incorrectly. Thanks.
Geoffrey Vincent
am 12 Sep. 2018
Bearbeitet: Geoffrey Vincent
am 12 Sep. 2018
Error for me also :
Error using matlab.ui.internal.dialog.FolderChooser/doShowDialog (line 70)
Java exception occurred:
java.lang.IllegalArgumentException: eval requires a valid MCR id when running in standalone mode.
at com.mathworks.jmi.NativeMatlab.PostMatlabMessage(Native Method)
at com.mathworks.jmi.NativeMatlab.postMatlabMessage(NativeMatlab.java:224)
at com.mathworks.jmi.NativeMatlab.postMatlabMessage(NativeMatlab.java:240)
at com.mathworks.jmi.MatlabLooper.postMatlabMessage(MatlabLooper.java:150)
at com.mathworks.jmi.MatlabMCR.postAsync(MatlabMCR.java:1542)
at com.mathworks.jmi.MatlabMCR.eval(MatlabMCR.java:518)
at com.mathworks.jmi.Matlab.eval(Matlab.java:1197)
at com.mathworks.jmi.MatlabPath$PathCallback.completed(MatlabPath.java:1449)
at com.mathworks.jmi.MatlabMCR$InterestHandler.messageReceived(MatlabMCR.java:1663)
at com.mathworks.jmi.NativeMatlab.ProcessPendingEvents(Native Method)
at com.mathworks.jmi.NativeMatlab.processPendingEvents(NativeMatlab.java:508)
at com.mathworks.jmi.AWTUtilities$MatlabLatch.safeWait(AWTUtilities.java:892)
at com.mathworks.jmi.AWTUtilities$MatlabLatch.waitFcn(AWTUtilities.java:907)
at com.mathworks.jmi.AWTUtilities$Latch.acquire(AWTUtilities.java:770)
at com.mathworks.jmi.AWTUtilities$Invoker.invoke(AWTUtilities.java:500)
at com.mathworks.jmi.AWTUtilities.invokeAndWaitInternal(AWTUtilities.java:250)
at com.mathworks.jmi.AWTUtilities.invokeAndWait(AWTUtilities.java:111)
Error in matlab.ui.internal.dialog.FolderChooser/show (line 48)
Error in uigetdir_helper (line 32)
1 Kommentar
Miguel Alfonso Mendez
am 28 Nov. 2018
I have the same problem:
Error using matlab.ui.internal.dialog.FolderChooser/doShowDialog (line 70)
Java exception occurred:
java.lang.IllegalArgumentException: eval requires a valid MCR id when running in standalone mode.
at com.mathworks.jmi.NativeMatlab.PostMatlabMessage(Native Method)
at com.mathworks.jmi.NativeMatlab.postMatlabMessage(NativeMatlab.java:224)
at com.mathworks.jmi.NativeMatlab.postMatlabMessage(NativeMatlab.java:240)
at com.mathworks.jmi.MatlabLooper.postMatlabMessage(MatlabLooper.java:150)
at com.mathworks.jmi.MatlabMCR.postAsync(MatlabMCR.java:1542)
at com.mathworks.jmi.MatlabMCR.eval(MatlabMCR.java:518)
at com.mathworks.jmi.Matlab.eval(Matlab.java:1197)
at com.mathworks.jmi.MatlabPath$PathCallback.completed(MatlabPath.java:1449)
at com.mathworks.jmi.MatlabMCR$InterestHandler.messageReceived(MatlabMCR.java:1663)
at com.mathworks.jmi.NativeMatlab.ProcessPendingEvents(Native Method)
at com.mathworks.jmi.NativeMatlab.processPendingEvents(NativeMatlab.java:508)
at com.mathworks.jmi.AWTUtilities$MatlabLatch.safeWait(AWTUtilities.java:892)
at com.mathworks.jmi.AWTUtilities$MatlabLatch.waitFcn(AWTUtilities.java:907)
at com.mathworks.jmi.AWTUtilities$Latch.acquire(AWTUtilities.java:770)
at com.mathworks.jmi.AWTUtilities$Invoker.invoke(AWTUtilities.java:500)
at com.mathworks.jmi.AWTUtilities.invokeAndWaitInternal(AWTUtilities.java:250)
at com.mathworks.jmi.AWTUtilities.invokeAndWait(AWTUtilities.java:111)
Error in matlab.ui.internal.dialog.FolderChooser/show (line 48)
Error in uigetdir_helper (line 32)
Kategorien
Mehr zu Introduction to Installation and Licensing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!