Статьи

Подумайте дважды об обновлении до последней версии Android Studio Canary Build

Вступление

Я недавно обновлял Android Studio до последней сборки, когда столкнулся с этой ошибкой:

образ

После нажатия кнопки «Выход» я получил эту ошибку:

java.lang.RuntimeException: com.intellij.ide.plugins.PluginManager$StartupAbortedException: Fatal error initializing 'null'
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:158)
    at com.intellij.idea.MainImpl$1$1$1.run(MainImpl.java:47)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:696)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:524)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: com.intellij.ide.plugins.PluginManager$StartupAbortedException: Fatal error initializing 'null'
    at com.intellij.ide.plugins.PluginManager.handleComponentError(PluginManager.java:235)
    at com.intellij.openapi.application.impl.ApplicationImpl.handleInitComponentError(ApplicationImpl.java:368)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.loadClasses(ComponentManagerImpl.java:422)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.loadClasses(ComponentManagerImpl.java:398)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.access$000(ComponentManagerImpl.java:384)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponents(ComponentManagerImpl.java:107)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:89)
    at com.intellij.openapi.components.impl.stores.ApplicationStoreImpl.load(ApplicationStoreImpl.java:87)
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:525)
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:150)
    ... 18 more
Caused by: java.lang.NoClassDefFoundError: io/netty/channel/EventLoopGroup
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.loadClasses(ComponentManagerImpl.java:408)
    ... 25 more
Caused by: java.lang.ClassNotFoundException: io.netty.channel.EventLoopGroup
    at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:142)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 28 more

Пролистав список проблем , я увидел, что у другого человека возникла эта проблема, и один из участников проекта предложил просто загрузить сборку и установить ее вручную. Это не сработало для меня, так как мне пришлось выполнить полное удаление / переустановку Android Studio, загрузить API и т. Д. Снова.

Это сразу же заставило меня принять решение переключить мои настройки по умолчанию на что-то более стабильное, например « Dev Channel ». 

По умолчанию Android Studio проверяет наличие новых сборок канареек. По моему скромному мнению, этого не должно быть. Я бы предпочел использовать слегка устаревшую версию IDE, которая более стабильна, чем версия, которая не является стабильной.

Какая разница?

  • Канарские каналы : Канарские сборки — это самый передовой, выпускаемый примерно еженедельно. Хотя эти сборки проходят тестирование, они по-прежнему подвержены ошибкам, так как мы хотим, чтобы люди увидели, что нового, как можно скорее. Это не рекомендуется для производства.
  • Канал Dev : сборки Dev — это отобранные вручную старые канарейки, которые выдержали испытание временем. Он должен обновляться примерно раз в две недели или ежемесячно.
  • Бета-канал : пока не используется. Это будет использоваться, когда у нас будут релизы бета-качества. Прямо сейчас Android Studio считается превью-качеством.
  • Стабильный канал : пока не используется. Это будет для версии 1.0 и следующих стабильных вех.

Как переключиться?

Нажмите «Ctrl-Alt-S», чтобы перейти к настройкам, или вы можете найти его через меню файлов.

образ

В настройках IDE — выберите «Updates» и переключите « Canary Channel » на « Dev Channel », как показано ниже.

образ

Заворачивать

Моя Android Studio наконец-то запущена и работает, и, надеюсь, это избавит вас от боли.