首页 > 解决方案 > 断言失败:第 205 行 POS 16:IMAGEURL != NULL 不正确

问题描述

当我运行我的颤振项目时,我不断收到此错误:

小部件库 'package:cached_network_image/src/cached_image_widget.dart' 捕获的异常:断言失败:第 205 行 pos 16:'imageUrl != null':不正确。相关的导致错误的小部件是 PostTile

我的代码如下所示:

buildProfilePosts() {
    if (isLoading) {
      return circularProgress();
    } else if (posts.isEmpty) {
      return Container(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            SvgPicture.asset('assets/images/no_content.svg', height: 260.0),
            Padding(
              padding: EdgeInsets.only(top: 20.0),
              child: Text(
                "No Posts",
                style: TextStyle(
                  color: Colors.redAccent,
                  fontSize: 40.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
            ),
          ],
        ),
      );
    } else if (postOrientation == "grid") {
      List<GridTile> gridTiles = [];
      posts.forEach((post) {
        gridTiles.add(GridTile(child: PostTile( post) ));
      });
      return GridView.count(
        crossAxisCount: 3,
        childAspectRatio: 1.0,
        mainAxisSpacing: 1.5,
        crossAxisSpacing: 1.5,
        shrinkWrap: true,
        physics: NeverScrollableScrollPhysics(),
        children: gridTiles,
      );
    } else if (postOrientation == "list") {
      return Column(
        children: posts,
      );
    }
  }

帮助我解决此错误。谢谢你!

标签: androidflutterdart

解决方案


1)。 对于 ImageUrl 检查,

class PostTile extends StatelessWidget {
  final Post post;

  PostTile(this.post);

  showPost(context) {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => PostScreen(
          postId: post.postId,
          userId: post.ownerId,
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () => showPost(context),
      child: imageCheck(post.mediaUrl),
    );
  }

  imageCheck(mediaUrl) {
    var imageUrl=mediaUrl.toString();
    print("image Url :-"+imageUrl);
    if(imageUrl=='null'){
      imageUrl='https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png';
    }
    return cachedNetworkImage(imageUrl);
  }
}

我添加了 imageurl null 的条件,我也在那里打印。可能对你有帮助。

2)。

此代码用于如何加载 .svg 图像。

签出您的 pubspec.yaml 文件,

你是这样添加图像路径的吗,

在此处输入图像描述

new SvgPicture.asset(
  'assets/fingerprint.svg',
  height: 20.0,
  width: 20.0,
  allowDrawingOutsideViewBox: true,
),

推荐阅读