Flutter 图片加载报错:Unable to load asset: xxx.png 解决方法

工程中的代码:
Container(decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('images/1.png'),
fit: BoxFit.cover),
)

 

附录flutter官方提供的加载asset资源例子:

https://github.com/nisrulz/flutter-examples/tree/master/load_local_image


不知道什么原因,导致写的解决方案内容不完整。现在补充下。。。

1.代码中的图片相对路径要和工程中实际路径一致。eg. 项目flutter_starve/images/1.png,引用路径:AssetImage('images/1.png')

2.pubspec.yaml中书写不规范。不规范的缩进和字符都可能导致配置的内容不生效。要注意yaml的一个缩进是2个空格,不要用tab或4个空格。横杠后面是一个空格。请参考下图

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
直接本地的 .aar 文件依赖项不支持构建 AAR。由于任何本地 .aar 文件依赖项的类和 Android 资源不会打包在生成的 AAR ,因此生成的 AAR 将无法使用。在这种情况下,Android Gradle 插件的早期版本也会生成损坏的 AAR(尽管不会抛出此错误)。如果您的 Flutter 项目使用了本地的 .aar 文件依赖项,那么您需要将其转换为 Maven 依赖项,或者将其打包为本地 Maven 存储库的库。您可以使用以下步骤解决此问题: 1. 将本地的 .aar 文件依赖项转换为 Maven 依赖项。您可以使用以下命令将其转换为 Maven 依赖项: ``` ./gradlew :<module-name>:uploadArchives ``` 然后,您可以在项目的 build.gradle 文件添加以下 Maven 依赖项: ``` repositories { mavenLocal() // other repositories } dependencies { implementation '<group-id>:<artifact-id>:<version>' // other dependencies } ``` 2. 将本地的 .aar 文件依赖项打包为本地 Maven 存储库的库。您可以使用以下步骤将其打包为本地 Maven 存储库的库: a. 在项目的 build.gradle 文件添加以下 Maven 存储库: ``` repositories { mavenLocal() // other repositories } ``` b. 在本地 Maven 存储库创建一个新的目录,并将 .aar 文件复制到该目录。 c. 在 .aar 文件所在的目录创建一个新的 build.gradle 文件,并添加以下内容: ``` apply plugin: 'maven' group = '<group-id>' version = '<version>' artifactId = '<artifact-id>' repositories { mavenLocal() } uploadArchives { repositories { mavenDeployer { repository(url: "file://${System.properties['user.home']}/.m2/repository") } } } ``` d. 在 .aar 文件所在的目录运行以下命令: ``` ./gradlew uploadArchives ``` 然后,您可以在项目的 build.gradle 文件添加以下 Maven 依赖项: ``` repositories { mavenLocal() // other repositories } dependencies { implementation '<group-id>:<artifact-id>:<version>' // other dependencies } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值