Mac: 网络用户遇到Adobe Reader 9.x/10.x异常退出的解决

最后更新于:2022-04-01 10:56:27

# **Mac: 网络用户遇到Adobe Reader 9.x/10.x异常退出的解决** ### 异常退出表现: 一个用户目录存放在AFP网络服务器上的网络用户登陆后,初次运行Adobe Reader 9.x/10.x时,Reader正常询问用户接收授权证书,以及是否使用Reader来打开所有的PDF文件等问题后,Reader菜单和程序图标在Dock上停留短暂时间后会突然退出,并显示下图的运行错误提示:   ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-19_57158f4eab170.gif) 在以后的运行中,同样是发生异常退出,用户根本无法使用Adobe Reader。 而本地用户以及移动用户(用户目录存放在本地磁盘),却没有这个问题。在最初的测试中发现,这个问题似乎和客户端和服务器端系统本身的版本无关,只同网络用户和Adobe Reader软件本身有关。 ### 错误跟踪:   跟踪系统的logs的结果是: ------------------------------------------------------------------------------------------------------------------------ 2/10/11 1:31:53 PM    Dock[10487]    SQLite failure in directoryCreated for <ECDirectory: 0x10183fd60> {path=/Network/Servers/s374rls2.com/UserData/374-123/Documents/} lineNum=759 err=5 (database is locked) 2/10/11 1:32:08 PM    [0x0-0xe90e9].com.adobe.Reader[10567] terminate called after throwing an instance of 'SQLiteUtils::SQLiteException' 2/10/11 1:32:10 PM    com.apple.launchd.peruser.2045665344[8759] ([0x0-0xe90e9].com.adobe.Reader[10567]) Job appears to have crashed: Abort trap 2/10/11 1:32:10 PM    ReportCrash[10578]    Saved crash report for AdobeReader[10567] version 9.3.0 (9.3.0) to /Network/Servers/s374rls2.com/UserData/374-123/Library/Logs/DiagnosticReports/AdobeReader_2011-02-10-133210_w374-764.crash ------------------------------------------------------------------------------------------------------------------------ 再来看看错误报告的前面部分的内容: ------------------------------------------------------------------------------------------------------------------------ Process:         AdobeReader [9435] Path:            /Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader Identifier:      com.adobe.Reader Version:         9.3.0 (9.3.0) Code Type:       X86 (Native) Parent Process:  launchd [8759] Date/Time:       2011-02-10 13:23:17.423 -0700 OS Version:      Mac OS X 10.6.3 (10D2063a) Report Version:  6 Interval Since Last Report:          5812 sec Crashes Since Last Report:           2 Per-App Interval Since Last Report:  27 sec Per-App Crashes Since Last Report:   2 Anonymous UUID:                      AA88CA84-2CD6-42AF-A4ED-D41DD8569C16 Exception Type:  EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Crashed Thread:  0  Dispatch queue: com.apple.main-thread Application Specific Information: abort() called Thread 0 Crashed:  Dispatch queue: com.apple.main-thread 0   libSystem.B.dylib                 0x98449132 __kill + 10 1   libSystem.B.dylib                 0x98449124 kill$UNIX2003 + 32 2   libSystem.B.dylib                 0x984db8e5 raise + 26 3   libSystem.B.dylib                 0x984f199c abort + 93 4   libstdc++.6.dylib                 0x9967bfda __gnu_cxx::__verbose_terminate_handler() + 433 5   libstdc++.6.dylib                 0x9967a17a __cxxabiv1::__terminate(void (*)()) + 10 6   libstdc++.6.dylib                 0x9967a1ba __cxxabiv1::__unexpected(void (*)()) + 0 7   libstdc++.6.dylib                 0x9967a2b8 __gxx_exception_cleanup(_Unwind_Reason_Code, _Unwind_Exception*) + 0 8   com.adobe.Acrobat.framework       0x8064ecc7 AcroSecurityBailOutImpl + 6611123 9   com.adobe.Acrobat.framework       0x8061fc76 AcroSecurityBailOutImpl + 6418530 10  com.adobe.Acrobat.framework       0x8061eed5 AcroSecurityBailOutImpl + 6415041 11  com.adobe.Acrobat.framework       0x806204c0 AcroSecurityBailOutImpl + 6420652 12  com.adobe.Acrobat.framework       0x809599f3 0x7fe27000 + 11741683 13  com.adobe.Acrobat.framework       0x80959b9e 0x7fe27000 + 11742110 14  com.adobe.Acrobat.framework       0x805be074 AcroSecurityBailOutImpl + 6018144 15  com.adobe.Acrobat.framework       0x80443bc6 AcroSecurityBailOutImpl + 4468658 16  com.adobe.Acrobat.framework       0x80443db1 AcroSecurityBailOutImpl + 4469149 17  com.adobe.Acrobat.framework       0x7ff69443 RunAcrobat + 1311411 18  com.adobe.Acrobat.framework       0x7ff6917a RunAcrobat + 1310698 19  com.apple.CoreFoundation          0x96c8976b __CFRunLoopRun + 8059 20  com.apple.CoreFoundation          0x96c870f4 CFRunLoopRunSpecific + 452 21  com.apple.CoreFoundation          0x96c86f21 CFRunLoopRunInMode + 97 22  com.apple.HIToolbox               0x9133b15c RunCurrentEventLoopInMode + 392 23  com.apple.HIToolbox               0x9133af11 ReceiveNextEventCommon + 354 24  com.apple.HIToolbox               0x9133ad96 BlockUntilNextEventMatchingListInMode + 81 25  com.apple.AppKit                  0x94a7c0fd _DPSNextEvent + 847 26  com.apple.AppKit                  0x94a7b93e -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156 27  com.apple.AppKit                  0x94a3dbc7 -[NSApplication run] + 821 28  com.adobe.Acrobat.framework       0x7fe29b8d RunAcrobat + 2557 29  com.adobe.Acrobat.framework       0x7fe292ce RunAcrobat + 318 30  com.adobe.Reader                  0x00002e8b start + 2371 31  com.adobe.Reader                  0x0000264a start + 258 32  com.adobe.Reader                  0x00002571 start + 41 ... ... ------------------------------------------------------------------------------------------------------------------------ ### 分析和测试: 从logs中的记录看,是Adobe Reader内置的SQLiteUtils在访问它的数据库的之后,无法锁定,从而简单地抛出一个致命错误并退出,致使后面的程序无法继续运行。而网络用户相关的文件访问,是通过AFP网络协议来实现的,所以很可能是因为它不支持AFP网络协议造成的。 其实,在旧旧版本中旧有过类似的问题,只不过在Adobe Reader 8.1.3中已经解决了这个问题,可是在新版本中9.x和10.x中这个类似的问题又出现了,而且至今不再解决这个问题。   查看Adobe的preference文件,没有发现问题,而它产生的一些字体缓存文件,却出现了问题。比如~/Library/Application Support/Adobe/Acrobat/9.0_x86目录中的,AdobeCMapFnt09.lst和AdobeComFnt09.lst的文件大小是0KB, 而正常的应该是4KB,这说明至少在生成这两个文件时产生了错误。   ***版权信息**: 本着开放交流的原则欢迎转载,除非明确声明"谢绝转载"等字样. **所有文章/图片/代码(除转载和翻译),版权均属文章作者**. 转载请遵守下面规则:  1)保持文章的完整性; 2)不得以盈利为目的; 3)完整标注文章作者[Tony Liu@[中国在线教育](http://blog.csdn.net/afatgoat)]和文章中标注的所有版权信息。 其它事宜,如:需要商业用途或以盈利为目的的、或者部分转载的等等,请与本作者联系: TonyLiu2CA@yahoo.com* * * 把其它本地用户中的9.0_x86目录中的所有文件复制过来,是第一个想到的方法,可以问题依旧。所以,SQLiteUtils不仅仅是在生成这些文件的时候有错误,就连读取都不行,那么就只好把SQLiteUtils需要存储的文件重新定向到本地硬盘。经过测试,这个方法的确奏效,不过也走了一点弯路,比如不能把Acrobat目录连接到本地,虽然9.0_x86是其中的一个子目录,而只能把9.0_x86目录设置成软连接。 ### 问题解决: 问题找到了,经过测试也是可以解决问题的,不过对于网络用户可以通过两个方式来最终解决这个问题。 ### 1. 登录脚本钩子: 第一个方法是使用登录脚本钩子的方式,如果你单位的系统部署的时候,系统映像里面已经包含了登录脚本钩子的实现,那么就可以使用这个方法。这个方法需要把脚本部署在每个客户端机器上,所以需要一些努力才能确认部署完成,特别是大型环境和移动系统较多的情形。而且这个方法,适合于针对只有Adobe安装的机器,而不是针对用户,这样,只有安装了Adobe的机器才需要   具体方法是江下面的语句加入到你的登录脚本中。 # Create new 'Caches' folder on the local hard drive `mkdir -p -m 777 "/private/tmp/$userLoggedIn/9.0_x86"`; `mkdir -p "$userHomeDir/Library/Application Support/Adobe/Acrobat"`; # Create symbolic link to point user's 'Caches' folder to local directory `ln -s -f -h "/private/tmp/$userLoggedIn/9.0_x86" "$userHomeDir/Library/Application Support/Adobe/Acrobat/9.0_x86"`; ### 2. 工作组管理器:   而使用Workgroup Manager设置,对用户/用户组/机器/机器组,进行组合控制,更加灵活。 选择所要设置的目标,选择Preferences->Details, 选择文件夹重定向,并编辑它,添加如图的各个键值。   ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-19_57158f4ec47dd.gif)   结束语: 至此,该问题解决,对于10.x版本的只要稍作修改,同样可以轻松解决。 其实,Adobe Acrobat等其它软件,也有这个运行错误,而这个思路同样适用于它们。       Tony Liu, 2011-02-13 于Calgary
';