jonathanlermitage / intellij-extra-icons-plugin

🧩 Issues and feature requests for Extra Icons plugin for IntelliJ-based IDEs. Also provides Theme Packs for Extra Icons.
https://plugins.jetbrains.com/plugin/11058-extra-icons
Other
172 stars 52 forks source link

(AppCode) java.lang.Throwable: Standard architecture not found for iOS among: #188

Closed danny-su closed 2 months ago

danny-su commented 2 months ago

Running environment

Bug description

Please include steps to reproduce (like go to.../click on... etc.) + expected and actual behaviour.
Please attach IDE logs. Open your IDE and go to Help, Show Log in Explorer, then pick idea.log.

IDE - additional info

N/A

IDE - stack trace


java.lang.Throwable: Standard architecture not found for iOS among:

    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:202)
    at com.jetbrains.cidr.xcode.frameworks.ApplePlatform.getStandardNativeArchitecture(ApplePlatform.java:355)
    at com.jetbrains.cidr.xcode.frameworks.AppleSdkManager.getStandardNativeArchitectureId(AppleSdkManager.java:485)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSettingsResolver$8.getDeclaredBuildSettingValues(BuildSettingsResolver.java:636)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSettingsResolver.convertValuesToSpecs(BuildSettingsResolver.java:453)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSettingsResolver.getSpecsTables(BuildSettingsResolver.java:438)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.CachingBuildSettingsResolver.lambda$createCachedSpecs$6(CachingBuildSettingsResolver.java:67)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.CachingBuildSettingsResolver.lambda$cached$5(CachingBuildSettingsResolver.java:61)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:39)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$3(CachedValueBase.java:244)
    at com.intellij.util.CachedValueBase.computeData(CachedValueBase.java:42)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$4(CachedValueBase.java:244)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:42)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:245)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:28)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.CachingBuildSettingsResolver.getSpecsTables(CachingBuildSettingsResolver.java:135)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSettingsResolver.doGetUnresolvedValueWithSource(BuildSettingsResolver.java:314)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.CachingBuildSettingsResolver.doGetUnresolvedValueWithSource(CachingBuildSettingsResolver.java:121)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSettingsResolver.doGetUnresolvedValueWithSource(BuildSettingsResolver.java:301)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSettingsResolver.getUnresolvedValueWithSource(BuildSettingsResolver.java:258)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSetting.getUnresolvedValue(BuildSetting.java:257)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSetting.getUnresolvedValue(BuildSetting.java:245)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSetting.getUnresolvedString(BuildSetting.java:273)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSetting.getString(BuildSetting.java:114)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSetting.getAbsoluteFile(BuildSetting.java:143)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSetting.getAbsolutePath(BuildSetting.java:132)
    at com.jetbrains.cidr.xcode.frameworks.buildSystem.BuildSetting.getAbsolutePath(BuildSetting.java:126)
    at com.jetbrains.cidr.xcode.model.PBXReference.resolveSourceTree(PBXReference.java:310)
    at com.jetbrains.cidr.xcode.model.PBXReference.resolvePath(PBXReference.java:271)
    at com.jetbrains.cidr.xcode.model.PBXReference.lambda$doFindFile$2(PBXReference.java:382)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:889)
    at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:69)
    at com.jetbrains.cidr.xcode.model.PBXReference.doFindFile(PBXReference.java:381)
    at com.jetbrains.cidr.xcode.model.PBXReference.findFile(PBXReference.java:359)
    at com.jetbrains.cidr.xcode.model.PBXReference.findFile(PBXReference.java:315)
    at com.jetbrains.cidr.projectView.XcodeProjectItemPresenter.getVirtualFile(XcodeProjectItemPresenter.java:26)
    at com.jetbrains.cidr.projectView.XcodeViewNode.getVirtualFile(XcodeViewNode.java:295)
    at lermitage.intellij.extra.icons.BaseIconProvider.decorate(BaseIconProvider.java:254)
    at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.lambda$decorate$0(CompoundProjectViewNodeDecorator.java:45)
    at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.forEach(CompoundProjectViewNodeDecorator.java:51)
    at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.decorate(CompoundProjectViewNodeDecorator.java:45)
    at com.jetbrains.cidr.projectView.XcodeViewNode.update(XcodeViewNode.java:289)
    at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:90)
    at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:33)
    at com.intellij.ui.tree.StructureTreeModel$Node.update(StructureTreeModel.java:485)
    at com.intellij.ui.tree.StructureTreeModel$Node.<init>(StructureTreeModel.java:466)
    at com.intellij.ui.tree.StructureTreeModel$Node.<init>(StructureTreeModel.java:459)
    at com.intellij.ui.tree.StructureTreeModel.getValidChildren(StructureTreeModel.java:417)
    at com.intellij.ui.tree.StructureTreeModel.validateChildren(StructureTreeModel.java:328)
    at com.intellij.ui.tree.StructureTreeModel$Node.isModelLeaf(StructureTreeModel.java:583)
    at com.intellij.ui.tree.StructureTreeModel.isLeaf(StructureTreeModel.java:364)
    at com.intellij.ui.tree.LeafState.get(LeafState.java:64)
    at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.load(AsyncTreeModel.java:597)
    at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.getNode(AsyncTreeModel.java:570)
    at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:464)
    at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:430)
    at com.intellij.util.concurrency.Invoker$Task.run(Invoker.java:304)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1100)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:72)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:129)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:110)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$1(ProgressManager.java:70)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
jonathanlermitage commented 2 months ago

Hi @danny-su
Unfortunately, this is a bug in the AppCode side.
BTW, I think I have a partial workaround. Extra Icons uses 4 different IDE's APIs in order to override icons. Each API allows us to override icons in specific areas (the project view, the editor tabs, the VCS view, things like that). The bug affects an API that renders icons in the project view. I can remove the calls to this API. This way, you will no longer see these errors. You should still see most icons in the project view, because the 3 other API partially affects the icons rendering in the project view, but some icons won't be overridden. This is not super clear (there's no javadoc for these APIs). I did some tests, and folder icons were a bit affected, but file icons seemed to work well.
I hope it will work for you too. The build is here, this is the 2024.4.2 plugin build with the partial workaround: Extra Icons-2024.4.2-for-AppCode.zip