Android Studio点击File-New报错无法创建文件求助
Android Studio点击File-New报错无法创建文件的解决方法
问题现象
点击Android Studio的「File」-「New」选项时触发错误,无法创建任何文件,重启Android Studio后问题仍未解决。
报错堆栈
com.fasterxml.aalto.WFCException: Invalid UTF-8 start byte 0xff at [row,col {unknown-source}]: [1,2] at com.fasterxml.aalto.in.XmlScanner.reportInputProblem(XmlScanner.java:1333) at com.fasterxml.aalto.in.ByteBasedScanner.reportInvalidInitial(ByteBasedScanner.java:446) at com.fasterxml.aalto.in.Utf8Scanner.decodeCharForError(Utf8Scanner.java:2708) at com.fasterxml.aalto.in.StreamScanner.nextFromProlog(StreamScanner.java:187) at com.fasterxml.aalto.stax.StreamReaderImpl.next(StreamReaderImpl.java:790) at com.intellij.ui.svg.JSvgDocumentFactoryKt.buildDocument(JSvgDocumentFactory.kt:95) at com.intellij.ui.svg.JSvgDocumentFactoryKt.createJSvgDocument(JSvgDocumentFactory.kt:36) at com.intellij.ui.svg.JSvgDocumentFactoryKt.createJSvgDocument$default(JSvgDocumentFactory.kt:34) at com.intellij.ui.svg.JSvgDocumentFactoryKt.createJSvgDocument(JSvgDocumentFactory.kt:30) at com.intellij.ui.svg.SvgKt.renderImage(svg.kt:291) at com.intellij.ui.svg.SvgKt.renderAndCache-rdQnj48(svg.kt:261) at com.intellij.ui.svg.SvgKt.access$renderAndCache-rdQnj48(svg.kt:1) at com.intellij.ui.svg.SvgKt.loadSvgAndCacheIfApplicable-F6nGey4(svg.kt:590) at com.intellij.ui.icons.ImageCacheKt.doLoadByDescriptor(imageCache.kt:290) at com.intellij.ui.icons.ImageCacheKt.loadByDescriptorWithoutCache(imageCache.kt:177) at com.intellij.ui.icons.ImageCacheKt.loadImage(imageCache.kt:139) at com.intellij.ui.icons.ImageDataByPathResourceLoader.loadImage(ImageDataByUrlLoader.kt:65) at com.intellij.ui.icons.CachedImageIcon.loadImage$intellij_platform_util_ui(CachedImageIcon.kt:313) at com.intellij.ui.icons.ScaledIconCache.getOrScaleIcon(ScaledIconCache.kt:43) at com.intellij.ui.icons.CachedImageIcon.resolveActualIcon(CachedImageIcon.kt:158) at com.intellij.ui.icons.CachedImageIcon.getIconWidth(CachedImageIcon.kt:119) at com.intellij.ui.icons.IconUtilKt.checkIconSize(iconUtil.kt:420) at com.intellij.openapi.util.IconLoader.filterIcon(IconLoader.kt:330) at com.intellij.openapi.util.IconLoader$getDisabledIcon$2.invoke(IconLoader.kt:279) at com.intellij.openapi.util.IconLoader$getDisabledIcon$2.invoke(IconLoader.kt:279) at com.intellij.openapi.util.IconLoader.getDisabledIcon$lambda$7(IconLoader.kt:279) at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330) at com.intellij.openapi.util.IconLoader.getDisabledIcon(IconLoader.kt:279) at com.intellij.openapi.util.IconLoader.getDisabledIcon(IconLoader.kt:267) at com.intellij.openapi.actionSystem.impl.ActionMenuItem.updateIcon(ActionMenuItem.java:230) at com.intellij.openapi.actionSystem.impl.ActionMenuItem.updateFromPresentation(ActionMenuItem.java:137) at com.intellij.openapi.actionSystem.impl.Utils.fillMenuInner(Utils.java:446) at com.intellij.openapi.actionSystem.impl.Utils.fillMenu(Utils.java:360) at com.intellij.openapi.actionSystem.impl.ActionMenu.fillMenu(ActionMenu.java:445) at com.intellij.openapi.actionSystem.impl.ActionMenu.setPopupMenuVisible(ActionMenu.java:390) at java.desktop/javax.swing.JPopupMenu.menuSelectionChanged(JPopupMenu.java:1506) at java.desktop/javax.swing.MenuSelectionManager.setSelectedPath(MenuSelectionManager.java:134) at java.desktop/javax.swing.plaf.basic.BasicMenuUI.appendPath(BasicMenuUI.java:264) at java.desktop/javax.swing.plaf.basic.BasicMenuUI$Actions.actionPerformed(BasicMenuUI.java:322) at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:311) at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:243) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:792) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:690) at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:593) at com.intellij.openapi.application.impl.ApplicationImpl.runWithoutImplicitRead(ApplicationImpl.java:1485) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:593) at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:67) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:369) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:368) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:368) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:363) at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:997) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:997) at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:363) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:405) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Android Studio版本及插件信息
- 版本: Android Studio Iguana | 2023.2.1
- Build号: AI-232.10227.8.2321.11479570,构建于2024年2月22日
- 运行时版本: 17.0.9+0--11185874 amd64
- 虚拟机: JetBrains s.r.o. 提供的OpenJDK 64-Bit Server VM
- 系统: Windows 10.0
- GC: G1 Young Generation, G1 Old Generation
- 内存: 2048M
- 核心数: 16
- 非捆绑插件:
- com.zone.unique.plugin.singleton (1.3)
- Batch Scripts Support (1.0.13)
- com.intellij.marketplace (232.10227.13)
- wu.seal.tool.jsontokotlin (3.7.4)
- GsonOrXmlFormat (2.0)
- idea.plugin.protoeditor (232.9559.10)
- de.ohmesoftware.parcelablegenerator (0.7.1)
- com.bytedance.tools.codelocator (2.0.1)
- com.pingfangx.plugin.legacylayoutinspector (1.2.0)
- com.developerphil.adbidea (1.6.13)
- mobi.hsz.idea.gitignore (4.5.2)
问题分析
报错核心是Invalid UTF-8 start byte 0xff,说明Android Studio加载SVG格式的菜单图标时,遇到了编码不符合UTF-8标准的文件,导致解析失败,进而无法渲染「New」菜单。可能的原因包括:
- AS缓存的SVG图标文件损坏
- 第三方插件自带的SVG图标编码错误
- AS配置文件中的图标资源异常
解决步骤
1. 清理Android Studio缓存
关闭Android Studio,找到缓存目录:C:\Users\<你的用户名>\.AndroidStudioIguana\system\caches,删除整个caches文件夹后重启AS。缓存文件会自动重建,大概率能修复损坏的图标资源。
2. 排查第三方插件
报错发生在菜单图标加载阶段,可能是某个第三方插件的图标资源有问题。
- 关闭AS,打开
C:\Users\<你的用户名>\.AndroidStudioIguana\config\plugins,暂时将所有非官方插件文件夹移到其他位置 - 重启AS,测试「File」-「New」是否正常
- 如果正常,逐个将插件移回并重启AS,找到导致问题的插件,更新该插件或直接卸载
3. 重置Android Studio配置
如果前两步无效,尝试重置AS配置:
- 关闭AS,删除配置目录:
C:\Users\<你的用户名>\.AndroidStudioIguana\config - 重启AS,重新配置开发环境(注意备份快捷键、插件列表等重要配置)
4. 重新安装Android Studio
若以上方法都无效,卸载当前AS,下载最新版本重新安装,确保安装路径无中文或特殊字符。
内容的提问来源于stack exchange,提问作者Zack
相关产品推荐
相关产品推荐

