【问题标题】:Can't open Project Structure dialog in Android Studio 4.1无法在 Android Studio 4.1 中打开项目结构对话框
【发布时间】:2020-11-10 17:07:06
【问题描述】:

当我尝试在 Android Studio 中打开“项目结构”对话框时(我在 macOS 上使用 4.1),我得到一个名为“获取构建模型”的进程正在运行,但没有任何反应。任何连续的尝试都会导致一个额外的“获取构建模型”过程(即,我得到“2 个进程正在运行……”,然后是“3 个进程正在运行……”等等) - 仍然没有发生任何事情,尤其是在项目结构对话框未出现。出现的是角落处的一个小错误图标:第一次使用 NoClassDefFoundError,后来调用 NullPointerExceptoin 引用“无法重置可配置”。

第一个错误的完整细节:

java.lang.NoClassDefFoundError: org/jetbrains/kotlin/resolve/constants/evaluate/ParseUtilsKt
    at com.android.tools.idea.gradle.dsl.parser.kotlin.KotlinDslParser.extractValue(KotlinDslParser.kt:155)
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslLiteral.lambda$produceValue$0(GradleDslLiteral.java:58)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:880)
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslLiteral.produceValue(GradleDslLiteral.java:58)
    at com.android.tools.idea.gradle.dsl.model.CachedValue.updateValue(CachedValue.java:68)
    at com.android.tools.idea.gradle.dsl.model.CachedValue.getValue(CachedValue.java:53)
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.getValue(GradleDslSimpleExpression.java:119)
    at com.android.tools.idea.gradle.dsl.model.ext.GradlePropertyModelImpl.extractAndGetValueType(GradlePropertyModelImpl.java:526)
    at com.android.tools.idea.gradle.dsl.model.ext.GradlePropertyModelImpl.getValueType(GradlePropertyModelImpl.java:100)
    at com.android.tools.idea.gradle.dsl.model.ext.PropertyUtil.resolveModel(PropertyUtil.java:140)
    at com.android.tools.idea.gradle.dsl.model.ext.ResolvedPropertyModelImpl.resolveModel(ResolvedPropertyModelImpl.java:258)
    at com.android.tools.idea.gradle.dsl.model.ext.ResolvedPropertyModelImpl.getValueType(ResolvedPropertyModelImpl.java:50)
    at com.android.tools.idea.gradle.structure.model.meta.PropertyModelUtilsKt.asInt(PropertyModelUtils.kt:50)
    at com.android.tools.idea.gradle.structure.model.android.PsAndroidModuleDefaultConfigDescriptors$versionCode$4.invoke(PsAndroidModuleDefaultConfigDescriptors.kt:186)
    at com.android.tools.idea.gradle.structure.model.android.PsAndroidModuleDefaultConfigDescriptors$versionCode$4.invoke(PsAndroidModuleDefaultConfigDescriptors.kt:50)
    at com.android.tools.idea.gradle.structure.model.meta.PropertyModelUtilsKt.getParsedValue(PropertyModelUtils.kt:126)
    at com.android.tools.idea.gradle.structure.model.meta.ModelPropertyCoreImpl.getParsedValue(ModelSimplePropertyImpl.kt:200)
    at com.android.tools.idea.gradle.structure.model.meta.ModelPropertyKt.getValue(ModelProperty.kt:74)
    at com.android.tools.idea.gradle.structure.configurables.ui.properties.SimplePropertyEditor.reload(SimplePropertyEditor.kt:330)
    at com.android.tools.idea.gradle.structure.configurables.ui.properties.SimplePropertyEditor.<init>(SimplePropertyEditor.kt:348)
    at com.android.tools.idea.gradle.structure.configurables.ui.properties.SimplePropertyEditorKt.simplePropertyEditor(SimplePropertyEditor.kt:361)
    at com.android.tools.idea.gradle.structure.configurables.ui.PropertiesUiModelKt.simplePropertyEditor(PropertiesUiModel.kt:144)
    at com.android.tools.idea.gradle.structure.configurables.android.modules.AndroidModuleRootConfigurableKt$defaultConfigPropertiesModel$3.invoke(AndroidModuleRootConfigurable.kt:90)
    at com.android.tools.idea.gradle.structure.configurables.android.modules.AndroidModuleRootConfigurableKt$defaultConfigPropertiesModel$3.invoke(AndroidModuleRootConfigurable.kt)
    at com.android.tools.idea.gradle.structure.configurables.ui.PropertyUiModelImpl.createEditor(PropertiesUiModel.kt:116)
    at com.android.tools.idea.gradle.structure.configurables.ui.PropertyUiModel$DefaultImpls.createEditor$default(PropertiesUiModel.kt:65)
    at com.android.tools.idea.gradle.structure.configurables.ui.properties.ConfigPanel.initializeEditors(ConfigPanel.kt:65)
    at com.android.tools.idea.gradle.structure.configurables.ui.properties.ConfigPanel.getComponent(ConfigPanel.kt:56)
    at com.android.tools.idea.gradle.structure.configurables.ui.AbstractTabbedMainPanel.ensureSelectedTabComponentInstantiated(AbstractTabbedMainPanel.kt:70)
    at com.android.tools.idea.gradle.structure.configurables.ui.AbstractTabbedMainPanel.addNotify(AbstractTabbedMainPanel.kt:77)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at com.intellij.ui.JBSplitter.addNotify(JBSplitter.java:111)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at com.intellij.openapi.ui.MasterDetailsComponent$3.addNotify(MasterDetailsComponent.java:128)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at com.intellij.ui.JBSplitter.addNotify(JBSplitter.java:111)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2776)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at javax.swing.JRootPane.addNotify(JRootPane.java:757)
    at java.awt.Container.addNotify(Container.java:2776)
    at java.awt.Window.addNotify(Window.java:770)
    at java.awt.Dialog.addNotify(Dialog.java:753)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.addNotify(DialogWrapperPeerImpl.java:638)
    at java.awt.Window.pack(Window.java:807)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:649)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:437)
    at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1685)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1644)
    at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1658)
    at com.android.tools.idea.structure.dialog.ProjectStructureConfigurable.showDialog(ProjectStructureConfigurable.kt:336)
    at com.android.tools.idea.structure.dialog.ProjectStructureConfigurable.showPlace(ProjectStructureConfigurable.kt:277)
    at com.android.tools.idea.structure.dialog.ProjectStructureConfigurable.show(ProjectStructureConfigurable.kt:293)
    at com.android.tools.idea.gradle.structure.actions.AndroidShowStructureSettingsAction.showAndroidProjectStructure(AndroidShowStructureSettingsAction.java:67)
    at com.android.tools.idea.gradle.structure.actions.AndroidShowStructureSettingsAction.actionPerformed(AndroidShowStructureSettingsAction.java:59)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:280)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:609)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$processAction$3(IdeKeyEventDispatcher.java:670)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:669)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:619)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.java:516)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:470)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:219)
    at com.intellij.ide.IdeEventQueue.lambda$new$5(IdeEventQueue.java:233)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:805)
    at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:40)
    at java.awt.Component.dispatchEventImpl(Component.java:4770)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    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:974)
    at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.java:900)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:841)
    at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
    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)
Caused by: java.lang.ClassNotFoundException: org.jetbrains.kotlin.resolve.constants.evaluate.ParseUtilsKt PluginClassLoader[org.jetbrains.android, 201.8743.12.41.6858069] com.intellij.ide.plugins.cl.PluginClassLoader@7bf47206
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:115)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
    ... 133 more

后续错误的详细信息:

cannot reset configurable

java.lang.NullPointerException
    at com.intellij.openapi.ui.MasterDetailsComponent.clearChildren(MasterDetailsComponent.java:428)
    at com.intellij.openapi.ui.MasterDetailsComponent.disposeUIResources(MasterDetailsComponent.java:417)
    at com.android.tools.idea.gradle.structure.configurables.BasePerspectiveConfigurable.reset(BasePerspectiveConfigurable.kt:213)
    at com.android.tools.idea.structure.dialog.ProjectStructureConfigurable.reset(ProjectStructureConfigurable.kt:399)
    at com.intellij.openapi.options.ex.ConfigurableCardPanel.reset(ConfigurableCardPanel.java:166)
    at com.intellij.openapi.options.ex.ConfigurableCardPanel.lambda$createConfigurableComponent$4(ConfigurableCardPanel.java:118)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894)
    at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
    at com.intellij.openapi.options.ex.ConfigurableCardPanel.createConfigurableComponent(ConfigurableCardPanel.java:105)
    at com.intellij.openapi.options.ex.ConfigurableCardPanel.lambda$create$0(ConfigurableCardPanel.java:54)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894)
    at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
    at com.intellij.openapi.options.ex.ConfigurableCardPanel.create(ConfigurableCardPanel.java:53)
    at com.intellij.openapi.options.newEditor.ConfigurableEditor$1.create(ConfigurableEditor.java:51)
    at com.intellij.openapi.options.newEditor.ConfigurableEditor$1.create(ConfigurableEditor.java:48)
    at com.intellij.ui.CardLayoutPanel.createValue(CardLayoutPanel.java:73)
    at com.intellij.ui.CardLayoutPanel.select(CardLayoutPanel.java:101)
    at com.intellij.ui.CardLayoutPanel.select(CardLayoutPanel.java:86)
    at com.intellij.openapi.options.newEditor.ConfigurableEditor.init(ConfigurableEditor.java:100)
    at com.intellij.openapi.options.newEditor.SingleSettingEditor.<init>(SingleSettingEditor.java:29)
    at com.intellij.openapi.options.newEditor.SettingsDialog.<init>(SettingsDialog.java:43)
    at com.android.tools.idea.structure.dialog.ProjectStructureConfigurable$showDialog$dialog$1.<init>(ProjectStructureConfigurable.kt:296)
    at com.android.tools.idea.structure.dialog.ProjectStructureConfigurable.showDialog(ProjectStructureConfigurable.kt:296)
    at com.android.tools.idea.structure.dialog.ProjectStructureConfigurable.showPlace(ProjectStructureConfigurable.kt:277)
    at com.android.tools.idea.structure.dialog.ProjectStructureConfigurable.show(ProjectStructureConfigurable.kt:293)
    at com.android.tools.idea.gradle.structure.actions.AndroidShowStructureSettingsAction.showAndroidProjectStructure(AndroidShowStructureSettingsAction.java:67)
    at com.android.tools.idea.gradle.structure.actions.AndroidShowStructureSettingsAction.actionPerformed(AndroidShowStructureSettingsAction.java:59)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:280)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:609)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$processAction$3(IdeKeyEventDispatcher.java:670)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:669)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:619)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.java:516)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:470)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:219)
    at com.intellij.ide.IdeEventQueue.lambda$new$5(IdeEventQueue.java:233)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:805)
    at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:40)
    at java.awt.Component.dispatchEventImpl(Component.java:4770)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    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:974)
    at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.java:900)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:841)
    at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
    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)

注意:这发生在我的一个特定 Android 项目中;在另一个项目中,我正在同一台机器上使用相同的 Android Studio 版本,我可以毫无问题地打开项目结构对话框 - 但我不知道是什么导致了这种差异。

知道为什么会发生这种情况以及如何解决吗?

【问题讨论】:

    标签: android android-studio kotlin


    【解决方案1】:

    如果其他人遇到类似的问题并偶然发现,现在我已经设法以两种不同的方式解决了这个问题 - 但请注意,与此同时我也将 Android Studio 更新到了 4.1.1,但是没有尝试按原样打开项目,所以我不知道是这次升级解决了这个问题,还是真的有必要应用以下任一替代方案:

    • 一个选项:删除您的 .idea 目录并将项目重新导入 Android Studio(在我的情况下,我通过克隆 Git 存储库来做到这一点,其中除了两个文件 - gradle.xmlcodeStyles/Project.xml - .idea 目录被 Git 忽略)。

    • 另一种选择:通过告诉 Android Studio import 而不是 open 来打开项目(我不确定这有什么不同,如果有的话,但是 - 至少结合升级到 4.1.1 - 这已经解决了问题)。

    我仍然不知道是什么导致了这个问题,不管它是什么,这显然是 Android Studio 中的一个错误(至少在 4.1.0 中),但至少现在我可以编辑我的“项目结构”再次通过对话框。 (顺便说一下,我自己会更乐意直接在 Gradle 构建配置脚本中进行所有配置,但似乎在“项目结构”对话框中了解如何做事的解释要比如何在“项目结构”对话框中做事容易得多Gradle...但这是另一个问题。)

    【讨论】:

    • 这并没有回答为什么会发生的问题,但确实提供了修复。我会接受它,因为没有发布其他答案。
    猜你喜欢
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 2017-04-04
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多