当前位置: 首页 > 知识库问答 >
问题:

在Android Studio中“Flutter create xxx”和“start a new Flutter project”的区别?

裴昊阳
2023-03-14

我的项目从第一天开始就是VS代码,通过命令flutter create xxx创建的。

当我在Android Studio中打开这个现有项目并右键单击res文件夹以添加新的image asset时,它没有弹出configure image asset,而是给出了ide Error currence

java.lang.NullPointerException
    at com.android.tools.idea.configurations.ConfigurationManager.create(ConfigurationManager.java:165)
    at com.android.tools.idea.configurations.ConfigurationManager.getConfiguration(ConfigurationManager.java:142)
    at com.android.tools.idea.editors.theme.ThemeEditorUtils.getConfigurationForModule(ThemeEditorUtils.java:523)
    at com.android.tools.idea.npw.assetstudio.DrawableRenderer.<init>(DrawableRenderer.java:72)
    at com.android.tools.idea.npw.assetstudio.wizard.GenerateImageAssetPanel.<init>(GenerateImageAssetPanel.java:216)
    at com.android.tools.idea.npw.assetstudio.wizard.NewImageAssetStep.<init>(NewImageAssetStep.java:39)
    at com.android.tools.idea.actions.NewImageAssetAction.createWizard(NewImageAssetAction.kt:33)
    at com.android.tools.idea.actions.AndroidAssetStudioAction.actionPerformed(AndroidAssetStudioAction.java:108)
    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)

为了缩小bug的范围,我flutter create yyyy另一个项目,在Android Studio中打开,bug被复制。

然后我在Android Studio的计数器应用程序中启动一个新的Flutter项目,然后右键单击新建图像资产,弹出配置图像资产

我错过了AndroidStuido的设置吗?还是Flutter create xxxstart a new Flutter project之间有区别?

共有1个答案

戚泰
2023-03-14

不幸的是,经过几个小时的研究,我对这个问题没有一个很好的答案。当我用flutter create my_app创建了我的应用程序,并尝试在Android Studio中编辑该图标后,试图为Android应用程序生成一个新的自适应图标时,我遇到了这个错误。

我的工作是使用插件fluter_launcher_icons并为插件指定前景和背景图像。我的前景图像只是图标的主要部分,而背景是我的图标放置在图标的常规版本上的渐变。最后我得到了三个图标图像:icon.png(一个1024x1024的高质量图像,插件用来生成不同设备所需的所有大小的图标);foreground.png(图标的主体),在我的例子中是一个菱形;background.png(图标的渐变背景)。

要使用该插件,只需将其添加到pubscpec.yaml文件的dev_dependencie部分下,如下所示:

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_launcher_icons:

并在pubscpec文件中添加一个新部分,如下所示:

flutter_icons:
  image_path: "assets/app_icon.png"
  android: true
  ios: true
  adaptive_icon_background: assets/background.png
  adaptive_icon_foreground: assets/foreground.png

如果您使用VS代码进行开发,并且安装了dart和flutter插件,那么只需保存pubspec.yaml文件就会自动运行flutter pub get,否则请确保在继续之前在终端中运行该命令。最后一步是在终端中运行此命令:

flutter packages pub run flutter_launcher_icons:main

这个命令将为您生成图标,并配置您的应用程序使用它们。下一次运行应用程序时,图标将在模拟器/设备中更新,并且应用程序将具有漂亮的自定义图标。

 类似资料:
  • 我正在从eclipseADT迁移到android Studio,我可以从Eclipse使用相同的android SDK吗?

  • 我想做一个应用程序,使用谷歌翻译API。自从我添加了 我的构建中的依赖项。gradle我有个错误: 现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。-自动值-1.2。jar(com.google.auto.value:auto-value:1.2)或者,设置android。defaultConfig。javaCom

  • 您能帮助在android studio中运行默认java而不是gradle执行吗?谢谢

  • 问题内容: 在java中==和equals的区别? 问题答案: .equals(…) 只会比较所写的内容进行比较,不会多也不会少。 如果一个类没有覆盖equals方法,则默认为equals(Object o)覆盖了该方法的最接近的父类的方法。 如果没有父类提供重写,则它默认为最终父类Object中的方法,因此你只能使用该Object#equals(Object o)方法。根据对象API,这与==;

  • 我正在尝试建立一个简单的“飞鸟”游戏,我需要鸟的图像倾斜,上升时指向上方,反之亦然。然而,当旋转我的图像时,它会在稍微下降或轻触屏幕后部分或完全从屏幕上消失。谁能告诉我怎么解决这个问题吗?

  • 我正在尝试从AndroidStudio中的JSON文件中读取数据,格式如下: 我想有对象包含int,String,String(每行的新对象)。有人知道怎么写吗?

  • 问题内容: 这是我的应用程序级别gradle文件: 编译项目时出现的完整错误是: 错误:任务’:app:transformDexArchiveWithExternalLibsDexMergerForDebug’的执行失败。 java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex