'资产不存在或者数据为空'但是资产存在并且有数据

问题描述 投票:0回答:1

我放入 pubspec.yaml 并运行 flutter pub get。我什至可以在内置文件资源管理器中查看 VS 代码上的文件,但它仍然会出现相同的错误。

class OnloginScreen extends StatefulWidget {
  const OnloginScreen({super.key});

  @override
  State<OnloginScreen> createState() => _OnloginScreenState();
}

class _OnloginScreenState extends State<OnloginScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(children: [
        RiveAnimation.asset('assets\RiveAssets\shapes.riv'),
      ]),
    );
  }
}

错误:

E/flutter ( 4055): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Unable to load asset: "assetsRiveAssetsshapes.riv".
E/flutter ( 4055): The asset does not exist or has empty data.
E/flutter ( 4055): #0      PlatformAssetBundle.load.<anonymous closure> (package:flutter/src/services/asset_bundle.dart:254:9)
E/flutter ( 4055): <asynchronous suspension>
E/flutter ( 4055): #1      RiveFile.asset (package:rive/src/rive_file.dart:263:19)       
E/flutter ( 4055): <asynchronous suspension>
E/flutter ( 4055): #2      RiveAnimationState._configure (package:rive/src/widgets/rive_animation.dart:176:11)
E/flutter ( 4055): <asynchronous suspension>
E/flutter ( 4055):

pubspec.yaml

name: nee_app
description: A new Flutter project.

# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.0.0+1

environment:
  sdk: '>=2.18.6 <3.0.0'

# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
# consider running `flutter pub upgrade --major-versions`. Alternatively,
# dependencies can be manually updated by changing the version numbers below to
# the latest version available on pub.dev. To see which dependencies have newer
# versions available, run `flutter pub outdated`.
dependencies:
  flutter:
    sdk: flutter


  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2
  intl: ^0.18.0
  smooth_page_indicator: ^1.0.0+2
  badges: ^2.0.3
  flutter_neumorphic: ^3.2.0
  lottie: ^2.1.0
  injectable: ^2.1.0
  provider: ^6.0.5
  timezone: ^0.9.1
  flutter_local_notifications: ^13.0.0
  rive: ^0.10.2
  flutter_svg: ^2.0.2


dev_dependencies:
  flutter_test:
    sdk: flutter

  # The "flutter_lints" package below contains a set of recommended lints to
  # encourage good coding practices. The lint set provided by the package is
  # activated in the `analysis_options.yaml` file located at the root of your
  # package. See that file for information about deactivating specific lint
  # rules and activating additional ones.
  flutter_lints: ^2.0.0

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter packages.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
    - assets/avaters/
    - assets/Backgrounds/
    - assets/icons/
    - assets/RiveAssets/

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  fonts:
    - family: Montserrat
      fonts:
        - asset: assets/fonts/Montserrat-Italic-VariableFont_wght.ttf
        - asset: assets/fonts/Montserrat-VariableFont_wght.ttf
    - family: Intel
      fonts:
        - asset: assets/fonts/Inter-Regular.ttf
        - asset: assets/fonts/Inter-SemiBold.ttf
          weight: 600
    - family: Poppins
      fonts:
        - asset: assets/fonts/Poppins-Bold.ttf
          weight: 700

所有其他资产都一样,无论是 Rive 资产还是我尝试在

OnloginScreen()
上使用的图像,我不知道为什么会这样。
flutter doctor
说一切正常

flutter dart pubspec
1个回答
0
投票

是路径读取错误。排队:

RiveAnimation.asset('assets\RiveAssets\shapes.riv')

您需要将反斜杠 \ 更改为斜杠 /,如下所示:

RiveAnimation.asset('assets/RiveAssets/shapes.riv')
© www.soinside.com 2019 - 2024. All rights reserved.