Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Think Twice About Updating to the Latest Android Studio Canary Build

DZone's Guide to

Think Twice About Updating to the Latest Android Studio Canary Build

· Java Zone ·
Free Resource

Atomist automates your software deliver experience. It's how modern teams deliver modern software.

Introduction

I was recently updating Android Studio to the latest build when I hit this error:

image

After hitting the “Exit” button, I got this error:

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

After digging through the issue list, I saw another person had this problem and a project member suggested that he just download the build and install it manually.  This did not work for me as I had to do a complete uninstall/reinstall of Android Studio and download APIs, etc. again.

This immediately made me decide to switch my default settings to something more stable like the “Dev Channel”. 

By default Android Studio checks for new canary builds. In my humble opinion, it should not. I’d rather use a slightly outdated version of the IDE that is more stable, then one that is not.

What’s the difference?

  • Canary channel: Canary builds are the bleeding edge, released about weekly. While these builds do get tested, they are still subject to bugs, as we want people to see what's new as soon as possible. This is not recommended for production.
  • Dev channel: Dev builds are hand-picked older canary builds that survived the test of time. It should be updated roughly bi-weekly or monthly.
  • Beta channel: Not used yet. This will be used when we'll have beta-quality releases. Right now Android Studio is considered preview-quality.
  • Stable channel: Not used yet. That will be for version 1.0 and following stable milestones.

How to Switch?

Press “Ctrl-Alt-S” to go to settings or you can find it through the file menu.

image

Under IDE Settings - Select Updates and switch “Canary Channel” to “Dev Channel” as shown below.

image

Wrap-Up

My Android Studio is finally back up and running and hopefully this saves you some pain.


Get the open source Atomist Software Delivery Machine and start automating your delivery right there on your own laptop, today!

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}