Flutter-intellij: java.lang.NoClassDefFoundError: org/mozilla/javascript/Scriptable

Created on 23 Apr 2019  Â·  4Comments  Â·  Source: flutter/flutter-intellij

What happened

This problem occurs when I update Android Studio from version 3.3.2 to 3.4.

Version information

Android Studio 3.4 • Flutter plugin io.flutter 34.0.2 • Dart plugin 183.5901

Error getting Flutter sdk information.

Exception

null

java.lang.NoClassDefFoundError: org/mozilla/javascript/Scriptable
    at delight.rhinosandox.RhinoSandboxes.create(RhinoSandboxes.java:9)
    at com.github.markusbernhardt.proxy.selector.pac.JavaxPacScriptParser.setupEngine(JavaxPacScriptParser.java:51)
    at com.github.markusbernhardt.proxy.selector.pac.JavaxPacScriptParser.<init>(JavaxPacScriptParser.java:40)
    at com.github.markusbernhardt.proxy.selector.pac.PacProxySelector.selectEngine(PacProxySelector.java:76)
    at com.github.markusbernhardt.proxy.selector.pac.PacProxySelector.<init>(PacProxySelector.java:41)
    at com.intellij.util.net.IdeaWideProxySelector.select(IdeaWideProxySelector.java:75)
    at com.intellij.util.proxy.CommonProxy.select(CommonProxy.java:213)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1132)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at java.net.URL.openStream(URL.java:1045)
    at io.flutter.samples.FlutterSampleManager.readSampleIndex(FlutterSampleManager.java:56)
    at io.flutter.samples.FlutterSampleManager.readSampleIndex(FlutterSampleManager.java:70)
    at io.flutter.samples.FlutterSampleManager.loadSamples(FlutterSampleManager.java:85)
    at io.flutter.samples.FlutterSampleManager.getSamples(FlutterSampleManager.java:50)
    at io.flutter.samples.FlutterSampleNotificationProvider.getSamplesForFile(FlutterSampleNotificationProvider.java:60)
    at io.flutter.samples.FlutterSampleNotificationProvider.createNotificationPanel(FlutterSampleNotificationProvider.java:42)
    at io.flutter.samples.FlutterSampleNotificationProvider.createNotificationPanel(FlutterSampleNotificationProvider.java:24)
    at com.intellij.ui.EditorNotificationsImpl$3.performInReadAction(EditorNotificationsImpl.java:136)
    at com.intellij.openapi.progress.util.ReadTask.lambda$runBackgroundProcess$0(ReadTask.java:66)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:977)
    at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:57)
    at com.intellij.openapi.progress.util.ReadTask.runBackgroundProcess(ReadTask.java:66)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runUnderProgress$4(ProgressIndicatorUtils.java:227)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$3(CoreProgressManager.java:180)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:582)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:87)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:180)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runUnderProgress(ProgressIndicatorUtils.java:225)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.access$100(ProgressIndicatorUtils.java:33)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils$4.run(ProgressIndicatorUtils.java:176)
    at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:227)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$100(BoundedTaskExecutor.java:26)
    at com.intellij.util.concurrency.BoundedTaskExecutor$2$1.run(BoundedTaskExecutor.java:200)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:229)
    at com.intellij.util.concurrency.BoundedTaskExecutor$2.run(BoundedTaskExecutor.java:194)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.mozilla.javascript.Scriptable
    at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:241)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 45 more

Most helpful comment

It seems to me error is in Android Studio 3.4.
Unfortunatelly in 3.4 "Automatic proxy configuration URL" does not work. This url point to java script.
3.4 release notes lack informamtion for removed support for java script :( .

If URL is set error is reaised in many cases:

  • "SDK update sites" empty list /

    • Updates, [Check Now] -> exception

    • etc.

All 4 comments

flutter doctor -v

[√] Flutter (Channel stable, v1.2.1, on Microsoft Windows [Version 10.0.17134.590], locale zh-CN)
• Flutter version 1.2.1 at C:\Flutter
• Framework revision 8661d8aecd (10 weeks ago), 2019-02-14 19:19:53 -0800
• Engine revision 3757390fa4
• Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\Users\1\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: C:\Android\AndroidStudio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
• All Android licenses accepted.

[√] Android Studio (version 3.4)
• Android Studio at C:\Android\AndroidStudio
• Flutter plugin version 34.0.2
• Dart plugin version 183.5901
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[√] IntelliJ IDEA Community Edition (version 2018.3)
• IntelliJ at C:\Program Files\IntelliJ
• Flutter plugin version 34.0.2
• Dart plugin version 183.5901

Hmm, from here:

java.lang.NoClassDefFoundError: org/mozilla/javascript/Scriptable
    at delight.rhinosandox.RhinoSandboxes.create(RhinoSandboxes.java:9)
    at com.github.markusbernhardt.proxy.selector.pac.JavaxPacScriptParser.setupEngine(JavaxPacScriptParser.java:51)
    at com.github.markusbernhardt.proxy.selector.pac.JavaxPacScriptParser.<init>(JavaxPacScriptParser.java:40)
    at com.github.markusbernhardt.proxy.selector.pac.PacProxySelector.selectEngine(PacProxySelector.java:76)
    at com.github.markusbernhardt.proxy.selector.pac.PacProxySelector.<init>(PacProxySelector.java:41)
    at com.intellij.util.net.IdeaWideProxySelector.select(IdeaWideProxySelector.java:75)
    at com.intellij.util.proxy.CommonProxy.select(CommonProxy.java:213)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1132)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at java.net.URL.openStream(URL.java:1045)
    at io.flutter.samples.FlutterSampleManager.readSampleIndex(FlutterSampleManager.java:56)

It looks like we're making a networking call to read flutter samples. We're then getting an exception thrown lower down the stack to do with missing classes and a network proxy.

I wonder if there's some issue with your JDK, or Android Studio install?

In any case, this particular code path may no longer exist. @pq, I believe that we don't make a network call anymore, but instead query the flutter sdk on disk for the samples index?

It seems to me error is in Android Studio 3.4.
Unfortunatelly in 3.4 "Automatic proxy configuration URL" does not work. This url point to java script.
3.4 release notes lack informamtion for removed support for java script :( .

If URL is set error is reaised in many cases:

  • "SDK update sites" empty list /

    • Updates, [Check Now] -> exception

    • etc.

Thanks for the report; closing as this seems like it's an issue in Android Studio itself, and not the Flutter plugin.

Was this page helpful?
0 / 5 - 0 ratings