Eclipse зависает при загрузке верстака - PullRequest
95 голосов
/ 23 января 2012

Мое затмение перестает загружать верстак.Я уже пробовал начинать с ./eclipse --clean

При запуске из консоли выдает следующее исключение:

java.lang.NullPointerException
    at org.eclipse.core.internal.runtime.Log.isLoggable(Log.java:101)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeIsLoggable(ExtendedLogReaderServiceFactory.java:57)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:158)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:146)
    at org.eclipse.equinox.log.internal.ExtendedLogServiceFactory.log(ExtendedLogServiceFactory.java:65)
    at org.eclipse.equinox.log.internal.ExtendedLogServiceImpl.log(ExtendedLogServiceImpl.java:87)
    at org.eclipse.equinox.log.internal.LoggerImpl.log(LoggerImpl.java:54)
    at org.eclipse.core.internal.runtime.Log.log(Log.java:60)
    at org.tigris.subversion.clientadapter.javahl.Activator.isAvailable(Activator.java:92)
    at org.tigris.subversion.clientadapter.Activator.getAnyClientAdapter(Activator.java:81)
    at org.tigris.subversion.subclipse.core.SVNClientManager.getAdapter(SVNClientManager.java:145)
    at org.tigris.subversion.subclipse.core.SVNClientManager.getSVNClient(SVNClientManager.java:92)
    at org.tigris.subversion.subclipse.core.SVNProviderPlugin.getSVNClient(SVNProviderPlugin.java:425)
    at org.tigris.subversion.subclipse.core.status.NonRecursiveStatusUpdateStrategy.statusesToUpdate(NonRecursiveStatusUpdateStrategy.java:53)
    at org.tigris.subversion.subclipse.core.status.StatusCacheManager.refreshStatus(StatusCacheManager.java:273)
    at org.tigris.subversion.subclipse.core.resourcesListeners.FileModificationManager.refreshStatus(FileModificationManager.java:179)
    at org.tigris.subversion.subclipse.core.resourcesListeners.FileModificationManager.resourceChanged(FileModificationManager.java:128)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:395)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1530)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:45)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Останавливается при загрузке com.android.ide.eclipse.adt

Что не так с моим верстаком?

Eclipse startup screen

Ответы [ 22 ]

145 голосов
/ 23 октября 2012

DISCLAIMER: THIS WILL DELETE ALL OF YOUR ECLIPSE WORKSPACE SETTINGS AND YOU WILL HAVE TO RE-IMPORT ALL YOUR PROJECTS, THERE ARE LESS DESTRUCTIVE ANSWERS HERE

Попробуйте выполнить следующее:

  1. Удалите папку .metadata в локальном рабочем пространстве (это то, что у меня сработало).Похоже, что он содержит файл .LOCK, который, если он не закрыт должным образом, не позволяет правильно запустить eclipse.В системах на основе Unix вы можете ввести в командной строке следующую команду:

    rm -r workspace/.metadata
    
  2. Удалите каталог .eclipse в своем домашнем каталоге.Запустить затмение.Если это не сработает,

  3. Откройте затмение под другой учетной записью пользователя.Если он загружается, вы знаете, что проблема связана с вашей учетной записью, а не с вашей установкой Eclipse.

91 голосов
/ 10 мая 2013

Процедура показана на http://off -topic.biz / о / затмения-отбой на-старт-показ только-The-заставка / у меня сработало:

  1. cd .metadata / .plugins
  2. mv org.eclipse.core.resources org.eclipse.core.resources.bak
  3. Начать затмение. (Должно отображаться сообщение об ошибке или пустое рабочее пространство, поскольку проект не найден.)
  4. Закрыть все открытые вкладки редакторов.
  5. Выходное затмение.
  6. rm -rf org.eclipse.core.resources (Удалить вновь созданный каталог.)
  7. mv org.eclipse.core.resources.bak / org.eclipse.core.resources (Восстановление исходного каталога.)
  8. Запустите затмение и начните работать. : -)

В других ответах:

eclipse -clean -clearPersistedState

упоминается - что, кажется, имеет тот же или даже лучший эффект.

Вот скрипт для MacOS (с использованием Macports) и Linux (протестирован на Ubuntu с Eclipse Равноденствие), чтобы начать с необязательного уничтожения бегущего затмения. Возможно, вы захотите адаптировать скрипт к вашим потребностям. Если вы добавляете новые платформы, пожалуйста, отредактируйте скрипт прямо в этом ответе.

#!/bin/bash
# WF 2014-03-14
#
# ceclipse:
#   start Eclipse cleanly
#
#   this script calls eclipse with -clean and -clearPersistedState
#   if an instance of eclipse is already running the user is asked
#   if it should be killed first and if answered yes the process will be killed
#
# usage: ceclipse
#

#
# error
#
#   show an error message and exit
#
#   params:
#     1: l_msg - the message to display
error() {
  local l_msg="$1"
  echo "error: $l_msg" 1>&2
  exit 1 
}

#
# autoinstall
#
#  check that l_prog is available by calling which
#  if not available install from given package depending on Operating system
#
#  params: 
#    1: l_prog: The program that shall be checked
#    2: l_linuxpackage: The apt-package to install from
#    3: l_macospackage: The MacPorts package to install from
#
autoinstall() {
  local l_prog=$1
  local l_linuxpackage=$2
  local l_macospackage=$3
  echo "checking that $l_prog  is installed on os $os ..."
  which $l_prog 
  if [ $? -eq 1 ]
  then
    case $os in 
      # Mac OS
      Darwin) 
        echo "installing $l_prog from MacPorts package $l_macospackage"        
        sudo port install $l_macospackage
      ;;
      # e.g. Ubuntu/Fedora/Debian/Suse
      Linux)
        echo "installing $l_prog from apt-package $l_linuxpackage"        
        sudo apt-get install $l_linuxpackage
      ;;
      # git bash (Windows)
      MINGW32_NT-6.1)
        error "$l_prog ist not installed"
      ;;
      *)
        error "unknown operating system $os" 
    esac
  fi
}

# global operating system variable
os=`uname`

# first set 
#  eclipse_proc - the name of the eclipse process to look for
#  eclipse_app - the name of the eclipse application to start
case $os in 
    # Mac OS
    Darwin) 
      eclipse_proc="Eclipse.app" 
      eclipse_app="/Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse"
      ;;
    # e.g. Ubuntu/Fedora/Debian/Suse
    Linux)
      eclipse_proc="/usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.2.0.dist.jar"
      eclipse_app=`which eclipse`
      ;;
    # git bash (Windows)
    MINGW32_NT-6.1)
      eclipse_app=`which eclipse`
      error "$os not implemented yet"
      ;;
    *)
      error "unknown operating system $os" 
esac

# check that pgrep is installed or install it
autoinstall pgrep procps

# check whether eclipse process is running
# first check that we only find one process
echo "looking for $eclipse_proc process"
pgrep -fl "$eclipse_proc"
# can't use -c option on MacOS - use platform independent approach 
#eclipse_count=`pgrep -cfl "$eclipse_proc"`
eclipse_count=`pgrep -fl "$eclipse_proc" | wc -l | tr -d ' '`

# check how many processes matched
case $eclipse_count in
  # no eclipse - do nothing
  0) ;;
  # exactly one - offer to kill it
  1) 
     echo "Eclipse is running - shall i kill and restart it with -clean? y/n?"
       read answer
       case $answer in
         y|Y) ;;
           *) error "aborted ..." ;;
       esac
     echo "killing current $eclipse_proc"
     pkill -f "$eclipse_proc"
     ;;
  # multiple - this is bogus
  *) error "$eclipse_count processes matching $eclipse_proc found - please adapt $0";;
esac

tmp=/tmp/eclipse$$
echo "starting eclipse cleanly ... using $tmp for nohup.out"
mkdir -p $tmp
cd $tmp

# start eclipse with clean options
nohup $eclipse_app -clean -clearPersistedState&
37 голосов
/ 16 августа 2013
./eclipse -clean -refresh

как упомянуто в комментарии sulai 20 декабря 12 в 12:46, это сработало для меня.

Однако в Mac OS X мне пришлось выяснить, как добраться до ./eclipse

Вот решение:

cd Eclipse.app/Contents/MacOS/

Спасибо Эндрю комментарий к этому посту: https://stackoverflow.com/a/1783448/2162226

19 голосов
/ 25 марта 2013

Лучшее решение, которое я нашел, это удалить этот файл: workspace / .metadata / .plugins / org.eclipse.e4.workbench / workbench

12 голосов
/ 15 сентября 2013

нет необходимости удалять все метаданные.просто попробуйте удалить файл .snap в org.eclipse.core.resources в папке рабочей области ex.

workspaceFolder.metadata.plugins \ org.eclipse.core.resources

11 голосов
/ 01 ноября 2012

Я решил удалить * .snap из каталога dir рабочей области (и всех его подкаталогов):

метаданные \ .plugins \ *. Snap

8 голосов
/ 04 февраля 2015

Довольно старый вопрос, но самый простой ответ еще не опубликован.
Вот оно:
1) В [workspace]\.metadata\.plugins\org.eclipse.e4.workbench удалить workbench.xmi файл.
В большинстве случаев достаточно - попробуйте загрузить Eclipse.
Тем не менее, вам необходимо перенастроить ваши конкретные настройки перспективы (если есть)

2) Теперь возникают проблемы со строительными проектами, которые работают отлично? По моему опыту помогают следующие шаги:
- снимите флажок Проекты-> Построить автоматически
- переключиться на перспективу Java (если еще нет): Окно -> Открыть перспективу -> Java
- найдите Проблемы Просмотрите или откройте его: Окно -> Показать представление -> Проблемы
- щелкните правой кнопкой мыши по группам проблем и выберите Удалить . Обязательно удалите ошибки Lint
- очистить рабочее пространство: Проект -> Очистить ... с опцией Очистить все проекты
- проверьте Проекты-> Построить автоматически
- если проблемы сохраняются для некоторых проектов: щелкните правой кнопкой мыши проект, выберите Свойства -> Android и убедитесь, что выбран Project Build Target выбран

3) Мне всегда было достаточно. Но если проблемы не исчезли - попробуйте рекомендации @george post

6 голосов
/ 08 января 2015

Следующая процедура работала на моих MacOS (Mavericks) и Eclipse Luna 4.4.1:

Удалить файл .snap по пути "workspaceFolder" .metadata.plugins \ org.eclipse.core.resources \

Если вы не знаете, как перейти к этой папке на Mac, нажмите Cmd + Shift + G (Перейти к папке) и введите полный адрес, по которому вы хотите перейти.

3 голосов
/ 16 июля 2013

удаление рабочей области / .metadata / .lock и запуск Eclipse с -clean -refresh работали для меня.

3 голосов
/ 23 января 2012

Похоже, у вас, возможно, возникла эта проблема:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=357199

...