Sceneform-android-sdk: Android Studio 3.5 RC2 SceneForm Plugin not working

Created on 8 Aug 2019  路  24Comments  路  Source: google-ar/sceneform-android-sdk

With the AS 3.5 Version the SceneForm Plugin is not working anymore. With the version 3.4 everything is fine.

Here the stacktrace wich you get when you try to import a new sceneform asset:

java.lang.AbstractMethodError: com.google.ar.sceneform.plugin.actions.ui.ImportWizard$$Lambda$6376/1733232676.onInvalidated()V
    at com.android.tools.idea.observable.AbstractObservableValue.notifyInvalidated(AbstractObservableValue.java:64)
    at com.android.tools.idea.observable.AbstractProperty.set(AbstractProperty.java:82)
    at com.google.ar.sceneform.plugin.actions.ui.GenerateSfbModel.checkModelPathExistent(GenerateSfbModel.java:119)
    at com.google.ar.sceneform.plugin.actions.ui.GenerateSfbModel.setModelPath(GenerateSfbModel.java:125)
    at com.google.ar.sceneform.plugin.actions.ui.ImportWizard.<init>(ImportWizard.java:71)
    at com.google.ar.sceneform.plugin.actions.NewRenderableAction.actionPerformed(NewRenderableAction.java:44)
    at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:261)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:278)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:292)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:283)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:107)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:282)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:111)
    at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
    at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
    at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:524)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:35)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:546)
    at java.awt.Component.processMouseEvent(Component.java:6550)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
    at java.awt.Component.processEvent(Component.java:6315)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4899)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4721)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4721)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:739)
    at java.awt.EventQueue$4.run(EventQueue.java:737)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:729)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:674)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:373)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

The gradle convert tasks are working but the plugin doesn't show the sfb output. The preview shows nothing.

bug fixed in upcoming release

Most helpful comment

@vortice3D - in that case you're building sfbs with version 1.9.0 (this is the com.google.ar.sceneform:plugin version) which is using one version of filament, and you're using version 1.9.0 of sceneform in your android app (from the com.google.ar.sceneform.ux:sceneform-ux version) which both have the same version of filament.

The Android Studio plugin also has a version of Filament that is used in the previewer and so if you use the 1.9.0 version of the Android studio plugin you should get the same results in the previewer as you get in your app. The 1.10.0 Android Studio plugin will have a somewhat different version of Filament and so potentially lead to different results - I believe between 1.9.0 and 1.10.0 there were not breaking Filament material changes and so those should be largely compatible, but this is not always the case as some new versions break material compatibility with old versions, and so the best strategy is to use the matching gradle/sceneform/plugin versions.

All 24 comments

Which version of the plugin are you using, and which OS?

Hi @tpsiaki the plugin has the newest version 1.11 (but i know that also the other versions are not working) and it is MacOs

Same on 3.5 RC3 (Mac OSX)

Also broken for 3.6 Canary 6 (Mac OSX)

Also the newest Plugin version 1.11.1 is not working.

Same on 3.5 stable (Mac OSX), trace:

java.lang.AbstractMethodError
    at com.android.tools.idea.observable.AbstractObservableValue.notifyInvalidated(AbstractObservableValue.java:64)
    at com.android.tools.idea.observable.AbstractProperty.set(AbstractProperty.java:82)
    at com.google.ar.sceneform.plugin.actions.ui.GenerateSfbModel.userInputReceived(GenerateSfbModel.java:134)
    at com.google.ar.sceneform.plugin.actions.ui.ImportWizard$6.selected(ImportWizard.java:134)
    at com.google.ar.sceneform.plugin.actions.ui.FileSelector$3.verify(FileSelector.java:67)
    at javax.swing.InputVerifier.shouldYieldFocus(InputVerifier.java:132)
    at javax.swing.JComponent$1.acceptRequestFocus(JComponent.java:3594)
    at java.awt.Component.isRequestFocusAccepted(Component.java:7796)
    at java.awt.Component.requestFocusHelper(Component.java:7671)
    at java.awt.Component.requestFocusHelper(Component.java:7643)
    at java.awt.Component.requestFocus(Component.java:7451)
    at javax.swing.JComponent.requestFocus(JComponent.java:1479)
    at javax.swing.plaf.basic.BasicButtonListener.mousePressed(BasicButtonListener.java:237)
    at java.awt.Component.processMouseEvent(Component.java:6547)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
    at java.awt.Component.processEvent(Component.java:6315)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4899)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4721)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4532)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4721)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:739)
    at java.awt.EventQueue$4.run(EventQueue.java:737)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:757)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:702)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:375)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    at java.awt.Dialog.show(Dialog.java:1077)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:706)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:437)
    at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1682)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1631)
    at com.google.ar.sceneform.plugin.actions.NewRenderableAction.actionPerformed(NewRenderableAction.java:49)
    at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:261)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:278)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:292)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:283)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:107)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:282)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:111)
    at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
    at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
    at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:524)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:35)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:546)
    at java.awt.Component.processMouseEvent(Component.java:6550)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
    at java.awt.Component.processEvent(Component.java:6315)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4899)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4721)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4721)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:739)
    at java.awt.EventQueue$4.run(EventQueue.java:737)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:757)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:702)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:375)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Viewer window is opened but nothing shown with plugin version 1.11.1 and Android Studio version 3.5.
Double clicking an sfb file open in the code editor.

Thanks we're looking into this.

Hi there:

In my case Android Studio 3.5 + Sceneform 1.11.1 (Windows machine) even can麓t generate the SFA/SFB files from a simple FBX.

Getting back to a fresh installation of AS 3.4.2 and crossing fingers!

We have a fix for this internally which will be available in the next release.

Thanks tpsiaki.

Do you have any date for such release?

P.S. I suppose you've realized it but even with the 1.11.1 plugin version installed, Android Studio keeps suggesting to use the 1.11.0 version, when you're editing Gradle files.

We don't have an exact date to share yet, but historically we've tended to release on a 6 week cadence.

Regarding the 1.11.1 plugin vs. 1.11.0 version in gradle - the 1.11.1 plugin is the latest version of the Android Studio Plugin which we released just to fix a crash on Windows and Linux, but it is fully compatible with the 1.11.0 sceneform sdk, and we did not release a new 1.11.1 sceneform sdk. So to get the latest versions you should be building with 1.11.0 selected in your app and project build.gradle files, and the 1.11.1 Sceneform Android Studio plugin installed.

Thanks for your comprehensive explanation, tpsiaki.

it's still not working.
i am building both app and project gradle with "sceneform-ux:1.11.0".
and using the plugin 1.11.1 and tried plugin 1.11.0 too. still i am unable to run.
my android studio version is 3.5
i can see the viewer but it's blank. on opening sfa or sfb i am only seeing the plain text. please help

@MehmoodArib

The fix is not released yet.

Could you upload somewhere some build of what you have now with this fix in order to use it till you are ready with the release? Otherwise we all of the people need to download AS 3.4.2... Thanks.

Hi there:

After downgrading AS to 3.4.2 I can compile again animated FBX files (that is, to generate SFA/SFB assets).

The case is that now the generated SFBs (Renderable) are not shown at all.

This is true even with the same FBX files which worked fine for me, when using the old-and-good Sceneform plugin 1.9.0.

As I need my app up and working as soon as possible, I wonder whether is it possible to use a previous version of the plugin instead the buggy 1.11.1 (1.9.0 for example)? I suppose it must be done in a manual (not automated) way but can't find how to do it?

Best regards.

We are working on testing and getting the release out as quickly as possible.

You can find old versions of the Android Studio plugin here: https://plugins.jetbrains.com/plugin/10698-google-sceneform-tools-beta-/versions

You can download and then in Android Studio use the install from disk option in the plugin settings page.

The previewer part of the Android studio plugin is fairly tightly coupled to the version of the sceneform gradle library that you use, so if you have a mismatch between the two, previewing will not function correctly - consequently If you'd like to stick with Sceneform Android Studio plugin 1.9, I'd recommend also using Sceneform 1.9 if you want previewing to function.

Thank you very much again tpsiaki, for such an immediate response.

Hi there tpsiaki:

Only for your information, things seems to work again fine with the combination AS 3.4.2 + SF plugin 1.9.0 or 1.10.0 (well, with the usual random crashes of AS when a SFB viewer is open).

Anyway, I have a doubt about how is resolved the case with a SF plugin installed and another one declared in both the project and app Gradle files. That is, for example _SF plugin 1.10.0 installed_ but the _1.9.0 in the Gradle files_, like this:

classpath 'com.google.ar.sceneform:plugin:1.9.0'

in project file and:

implementation "com.google.ar.sceneform.ux:sceneform-ux:1.9.0"
// Use the Sceneform UX Package built from the source files included in the sceneformux folder.
//api project(":sceneformux")

// Alternatively, use ArSceneView without the UX dependency.
//implementation "com.google.ar.sceneform:core:1.9.0"

// Support for animated model renderables
implementation "com.google.ar.sceneform:animation:1.9.0"
...

in app file.

Thanks for your time.

@vortice3D - in that case you're building sfbs with version 1.9.0 (this is the com.google.ar.sceneform:plugin version) which is using one version of filament, and you're using version 1.9.0 of sceneform in your android app (from the com.google.ar.sceneform.ux:sceneform-ux version) which both have the same version of filament.

The Android Studio plugin also has a version of Filament that is used in the previewer and so if you use the 1.9.0 version of the Android studio plugin you should get the same results in the previewer as you get in your app. The 1.10.0 Android Studio plugin will have a somewhat different version of Filament and so potentially lead to different results - I believe between 1.9.0 and 1.10.0 there were not breaking Filament material changes and so those should be largely compatible, but this is not always the case as some new versions break material compatibility with old versions, and so the best strategy is to use the matching gradle/sceneform/plugin versions.

Would my issue be included in this?

Annotation 2019-09-10 132513

This is fixed in the latest release

Have you found any solution for this? @Databoltmp7

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hcjung2000 picture hcjung2000  路  3Comments

dementia2029 picture dementia2029  路  3Comments

LukasStancikas picture LukasStancikas  路  3Comments

kunal-wayfair picture kunal-wayfair  路  3Comments

peronecode picture peronecode  路  3Comments