4

Несколько часов назад Chrome закрылся на моем MacBook Air с OS X Yosemite 10.10.2, и восстановить его невозможно. Каждый раз, когда я пытаюсь запустить его, он выходит с сообщением "Google Chrome неожиданно завершил работу", предоставляя мне возможность отправить отчет в Apple, игнорировать или перезапустить Chrome. И то же самое происходит потом.

Я попытался запустить безопасный сеанс Chrome с параметрами --safe-plugins, но безуспешно, вот что происходит, когда я делаю это из терминала:

Mac-705681ad12c1-2:MacOS javipas$ ./Google\ Chrome --safe-plugins
2014-11-26 18:02:09.266 Google Chrome[921:21325] -[NSTouch _initWithPreviousTouch:newPhase:position:isResting:]: unrecognized selector sent to instance 0x7fb71afabcc0
[921:1299:1126/180209:FATAL:chrome_browser_application_mac.mm(148)] Someone is trying to raise an exception!  NSInvalidArgumentException reason -[NSTouch _initWithPreviousTouch:newPhase:position:isResting:]: unrecognized selector sent to instance 0x7fb71afabcc0
Trace/BPT trap: 5
Mac-705681ad12c1-2:MacOS javipas$

Я также пытался удалить Chrome из папки Apps и установить его снова, но безуспешно. Есть идеи, пожалуйста?

6 ответов6

5

Просто предположение:

Это может быть проблема с вашим профилем пользователя в Chrome. Я знаю, у меня была эта проблема раньше на ПК с Windows. Это имело бы смысл, поскольку удаление и переустановка приложения в Mac не приведет к удалению этих пользовательских файлов.

Возможно, они были повреждены или повреждены.

Перейдите к:

~/Library/Application Support/Google/Chrome/

Переименуйте папку Default во что-то вроде Default-Backup и перезапустите Chrome. Он должен сгенерировать новый профиль по умолчанию, и, надеюсь, ваша проблема будет исправлена.

Однако при этом вы потеряете свои данные. Перед началом этого процесса включите синхронизацию Chrome, если вас беспокоит потеря чего-либо.

Я полагаю, что если исправление сработает, вы можете «выбрать вишню» файлы и папки из каталога резервных копий, пока не возникнет проблема, чтобы сузить файл, который может быть основной причиной сбоя.

Редактировать:

Эта проблема:

Судя по количеству внимания, которое было уделено проблемам хрома за последние несколько дней, похоже, что проблема, которую вы описываете, вызвана проблемой с драйвером сенсорной панели Mac.

Но это странная ошибка, потому что она явно не затрагивает всех, даже людей с самой последней версией Mac OS X (10.10.2). Но в соответствии с этим, проблема связана с Apple , подешевевшие селектор isResting , а затем полностью удалить его в последнем обновлении.

Опять же, ошибка, о которой сообщают люди, выглядит следующим образом:

[NSTouch _initWithPreviousTouch:newPhase:position:isResting:]: unrecognized selector sent to instance

Решение:

Похоже, что некоторые люди просто подключают внешние мыши, и если они не трогают трекпад, это нормально. Если это звучит как хорошее решение, убедитесь, что вы также включили «Игнорировать трекпад при помощи мыши» в настройках специальных возможностей.

Вы можете попробовать понизить Chrome, если первый вариант звучит как хлопот. Не уверен, что это сработает, но это может быть хорошей попыткой.

Я полагаю, что в ближайшие пару дней патч будет выпущен для канареечных сборок, или Apple отправит новое обновление драйвера (но, вероятно, нет, так как они работали над удалением isResting). Я бы остался в поисках этого.

3

Вариант 2 ответа Пиппина работает так, что дает полное временное исправление (я не могу просто подтвердить ответ):

[1] Поместите в файл "patch.m" следующее:

#import <AppKit/AppKit.h>

__attribute((constructor)) void Patch_10_10_2_entry()
{
    NSLog(@"10.10.2 patch loaded");
}

@interface NSTouch ()
- (id)_initWithPreviousTouch:(NSTouch *)touch newPhase:(NSTouchPhase)phase position:(CGPoint)position isResting:(BOOL)isResting force:(double)force;
@end

@implementation NSTouch (Patch_10_10_2)
- (id)_initWithPreviousTouch:(NSTouch *)touch newPhase:(NSTouchPhase)phase position:(CGPoint)position isResting:(BOOL)isResting
{
    return [self _initWithPreviousTouch:touch newPhase:phase position:position isResting:isResting force:0];
}
@end

Скомпилируйте это:

clang -dynamiclib -framework AppKit patch.m -o patch.dylib

Используй это:

env DYLD_INSERT_LIBRARIES=/path/to/patch.dylib "/path/to/Google Chrome.app/Contents/MacOS/Google Chrome"

Часть 2 Автомат

В Automator выберите «Запустить сценарий оболочки», вставьте указанную выше команду и сохраните как приложение на рабочем столе.

2

Это проблема с новым драйвером трекпада в OSX 10.10.2.

ВАРИАНТ 1: Вы можете использовать внешнюю мышь, отключив использование трекпада при подключенной USB-мыши. (Специальные возможности> Мышь и трекпад> Игнорировать встроенный трекпад при наличии мыши или беспроводного трекпада)

ВАРИАНТ 2:(находится на Reddit) Это исправление не лучшее решение, но оно работает. Когда вы будете следовать инструкциям, вам придется запускать последнюю команду терминала каждый раз, когда вы захотите запустить Chrome. Но вы также можете создать Chrome Launcher с помощью приложения automator и команды терминала.

2

Я решил эту проблему, переименовав в другой файл ~/Library/Application Support/Google/Chrome/Local State . Я переименовал его в Local State-backup .

Теперь я снова запустил Chrome, он запускается и создает свежий файл Local State . Вам вообще не нужно трогать ~/Library/Application Support/Google/Chrome/Default папку по умолчанию .

0

Проблема исправлена с 20 декабря 2014 года на OS X Yosemite. Я не уверен, когда Apple выпустила более новую версию OS X, но в настоящее время я могу открыть Google Chrome обычным способом и двигать мышью без сбоев.

Приведенный выше предыдущий патч вызовет сбой программы, если вы переместите мышь при запуске Chrome.

0

Если вы используете Chorome Canary, выполните следующие действия. Это сработало для меня. Нет потери данных. Даже я вернул все свои вкладки.

1) Откройте терминал и выполните эти команды

cd ~/Library/Application\ Support/Google/Chrome\ Canary/
mv Local\ State Local\ State_bkp

2) Запуск Chorome Canary

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .