Skip to content

IDE error: Cannot read field "x" because "nd" is null #147

@hogansung

Description

@hogansung

Describe the bug
After installing Crowdin from AndroidStudio Marketplace, I got an IDE error: Cannot read field "x" because "nd" is null.

To Reproduce
Steps to reproduce the behavior:

  1. Configuration file: NA
  2. Localization files structure: '...': NA
  3. Click on ..: NA
  4. See error
java.lang.NullPointerException: Cannot read field "x" because "nd" is null
	at com.intellij.ui.tree.ui.DefaultTreeLayoutCache$Node.getBounds(DefaultTreeLayoutCache.kt:550)
	at com.intellij.ui.tree.ui.DefaultTreeLayoutCache.getBounds(DefaultTreeLayoutCache.kt:197)
	at com.intellij.ui.tree.ui.DefaultTreeUI.updateCachedPreferredSize(DefaultTreeUI.java:548)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(Unknown Source)
	at com.intellij.ui.tree.ui.DefaultTreeUI.getPreferredSize(DefaultTreeUI.java:505)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at com.intellij.ui.treeStructure.Tree.getPreferredSize(Tree.java:1219)
	at com.intellij.ui.components.JBViewport.getPreferredSizeWithoutScrollBars(JBViewport.java:537)
	at com.intellij.ui.components.JBViewport.getPreferredScrollableViewportSize(JBViewport.java:616)
	at com.intellij.ui.components.JBViewport.getPreferredScrollableViewportSize(JBViewport.java:530)
	at com.intellij.ui.components.JBViewport$1.preferredLayoutSize(JBViewport.java:66)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at com.intellij.ui.components.JBScrollPane$Layout.preferredLayoutSize(JBScrollPane.java:862)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at java.desktop/java.awt.GridBagLayout.GetLayoutInfo(Unknown Source)
	at java.desktop/java.awt.GridBagLayout.getLayoutInfo(Unknown Source)
	at java.desktop/java.awt.GridBagLayout.ArrangeGrid(Unknown Source)
	at java.desktop/java.awt.GridBagLayout.arrangeGrid(Unknown Source)
	at java.desktop/java.awt.GridBagLayout.layoutContainer(Unknown Source)
	at java.desktop/java.awt.Container.layout(Unknown Source)
	at java.desktop/java.awt.Container.doLayout(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validate(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$3.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$3.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.validateInvalidComponents(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:101)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:101)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:107)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:101)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:27)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:675)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:573)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18$lambda$17$lambda$16$lambda$15(IdeEventQueue.kt:355)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:857)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18$lambda$17$lambda$16(IdeEventQueue.kt:354)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$2$lambda$1(IdeEventQueue.kt:1045)
	at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:128)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:916)
	at com.intellij.openapi.application.WriteIntentReadAction.compute(WriteIntentReadAction.java:55)
	at com.intellij.openapi.application.WriteIntentReadAction.run(WriteIntentReadAction.java:23)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$2(IdeEventQueue.kt:1045)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:1054)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:109)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1054)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:387)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

Environment:

  1. Android Studio version (latest version)
Android Studio Meerkat | 2024.3.1
Build #AI-243.22562.218.2431.13114758, built on February 24, 2025
Runtime version: 21.0.5+-12932927-b750.29 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Toolkit: sun.lwawt.macosx.LWCToolkit
macOS 15.3.1
GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation
Memory: 3072M
Cores: 8
Metal Rendering is ON
Registry:
  ide.experimental.ui=true
  idea.ignore.disabled.plugins=true
  i18n.locale=
Non-Bundled Plugins:
  com.crowdin.crowdin-idea (2.2.0)
  com.nbadal.ktlint (0.26.0)
  1. OS version (latest version)
    15.3.1 (24D70)

Expected behavior
There shouldn't be this IDE error. I could not "Upload Sources" when this issue persists.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context

Run the plugin in Debug mode and provide an extended log.
To enable Debug mode add debug=true to the crowdin.properties file.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions