一个MATLAB2018a以及之前版本 打包文件的bug问题

问题描述:Error when using uigetdir() in deployed MATLAB application (java.lang​.IllegalAr​gumentExce​ption: eval requires a valid MCR id when running in standalone mode)

问题具体:

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)

问题截图:

问题不大但糟心的很

解决方法:

这是一个已知的bug(2018a仍然存在,希望在2018b可以解决)

去这个地方https://download.csdn.net/download/sinat_38679789/10972043下载这个文件,然后搜索一下matlab路径下的所有的uigetdir,让把下载的文件放在比所有原来的uigetdir更高级的目录下,原来的那几个都不用动,什么时候bug修复了,什么时候把这个文件删了就行啦

 

这是私人的解决方案是我遇到这个问题,解决这个问题,从matlab社区Nate Ellingson大神提供的脚本copy过来的,在matlab官方上这个问题没有解决方法。

Dear Nate:If you see this article and feel that what I have done is not appropriate, please  contact me, I will give you a satisfactory answer。Thanks for your help.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值