odi*_*ity 1 android image-loading flutter
我在我的应用程序中使用 CachedNetworkImage,当我在 Android 上的调试或发布中运行它时它工作正常,但是当我将 aab 上传到 Play 商店并从 Play 商店下载应用程序时,图像只是卡在占位符上.
这是我在应用程序中使用它的方式。请注意,我为占位符和错误使用了 Text 小部件,以便我可以直观地调试发布版本上的任何问题:
child: Stack(
children: <Widget>[
url != null
? CachedNetworkImage(
imageUrl: url,
errorWidget: (context, url, error) => Text("$error"),
placeholder: (context, url) => Text("Loading $url"),
imageBuilder: (context, imageProvider) => Container(
width: double.infinity,
height: 150,
decoration: BoxDecoration(
image: DecorationImage(image: imageProvider, fit: BoxFit.fitWidth),
),
),
)
: Container(),
Run Code Online (Sandbox Code Playgroud)
我在 pubspec 中使用了最新版本的 cached_network_image:
cached_network_image: ^2.4.1
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我尝试帮助缩小问题范围的方法:
Image.network(url)CachedNetworkImage 代替。当我这样做时,图像加载得很好,所以我知道这不是互联网或 url 的问题。flutter run --release. 这工作正常,图像加载正确。odi*_*ity 10
我最终在 github.com/Baseflow/flutter_cached_network_image/issues/497 的 github 问题中找到了解决方案。原来这是 CachedNetworkImage 使用的 sqflite 库的一个 proguard 问题。在他们在库中修复它之前,解决方案是将默认的 proguard 文件添加到 build.gradle 文件中:
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true // Add these lines
shrinkResources true // Add these lines
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') // Add these lines
}
}
Run Code Online (Sandbox Code Playgroud)
我真的很惊讶没有其他人在我能找到的 SO 上发布了这个,这似乎是图书馆的重大突破性变化。
| 归档时间: |
|
| 查看次数: |
830 次 |
| 最近记录: |