Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Emacs error "Failed to initialize color list unarchiver" when I call it in the terminal

I've just installed emacs on my MacBook Pro, but when I type "emacs" in my terminal I get this error :

Emacs-x86_64-10_10[5647:247335] Failed to initialize color list unarchiver: Error Domain=NSCocoaErrorDomain Code=4864 "* -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]: non-keyed archive cannot be decoded by NSKeyedUnarchiver" UserInfo={NSDebugDescription=* -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]: non-keyed archive cannot be decoded by NSKeyedUnarchiver}

Then emacs opens correctly, but I can't compile files because of this error.

like image 708
alex Avatar asked Sep 26 '18 15:09

alex


3 Answers

This is a known error for Emacs on macOS Mojave. Apparently Emacs has been using a deprecated, and now removed, API. You can follow the thread on the "emacs-devel" mailing list.

Edit 25 JUL 2019:

Since people still seem to be getting to this question, patches for this issue were pushed the emacs-26 branch as of Fri, 28 Sep 2018. The latest version of Emacs 26 (or greater) from source or https://emacsformacosx.com/ will work. If you're just now upgrading and you still get the error/crash with the latest Emacs, delete ~/Library/Colors/Emacs.clr and restart your new Emacs. Emacs will recreate a non-corrupted version of that file as documented here.

like image 116
nega Avatar answered Nov 13 '22 16:11

nega


Apparently the issue, mentioned here, can be fixed just by removing

~/Library/Colors/Emacs.clr

This file will be recreated the next time Emacs is run

EDIT: when you reboot though, it shows up again

like image 26
Fabrizio Miano Avatar answered Nov 13 '22 14:11

Fabrizio Miano


Thank you, @Fabrizio-Miano. I lack the reputation to comment on your answer, but it guided me in the right direction. I was able to suppress this error with a simple one-liner added to the end of my init.el. For others who are interested, I just added:

(delete-file "~/Library/Colors/Emacs.clr")

For what it's worth, I placed this in a progn statement so that it occurs after my theme gets loaded. I'm not sure that it makes a difference, but it seemed like a logical thing to do. Perhaps not an ideal solution, but better than waiting for things to get sorted out in the emacs-26 branch.

like image 14
Ryan E. Avatar answered Nov 13 '22 14:11

Ryan E.