apk 发布模式下 shared_prefrences 的颤振错误(在通道 plugins.flutter.io/shared_preferences 上找不到方法 getAll 的实现)
Posted
技术标签:
【中文标题】apk 发布模式下 shared_prefrences 的颤振错误(在通道 plugins.flutter.io/shared_preferences 上找不到方法 getAll 的实现)【英文标题】:Flutter error of shared_prefrences in release mode of apk (No implementation found for method getAll on channel plugins.flutter.io/shared_preferences) 【发布时间】:2021-04-23 18:11:36 【问题描述】:shared_preferences:^0.5.12+4
错误日志:
MissingException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
flutter sdk 详细信息:
[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.14.6 18G7016 darwin-x64, locale en-US) • Flutter 版本 1.22.5,位于 /Users/taleb/Developer/flutter • 框架修订7891006299(6周前),2020-12-10 11:54:40 -0800 • 引擎修订版ae90085a84 • Dart 版本 2.10.4
[✓] android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.3) • Android SDK 位于 /Users/taleb/Library/Android/sdk • 平台 android-30,构建工具 30.0.3 • ANDROID_HOME = /Users/taleb/Library/Android/sdk • Java 二进制文件位于:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_242-release-1644-b3-6915495) • 接受所有 Android 许可证。
[!] Xcode - 为 ios 和 macOS 开发 ✗ Xcode 安装不完整; iOS 开发需要完整安装。 下载地址:https://developer.apple.com/xcode/download/ 或者通过 App Store 安装 Xcode。 安装后,运行: sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer sudo xcodebuild -runFirstLaunch • CocoaPods 1.8.3 版
[✓] Android Studio(4.1 版) • Android Studio 位于 /Applications/Android Studio.app/Contents • 安装了 Flutter 插件 • Dart 插件版本 201.9317 • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_242-release-1644-b3-6915495)
[✓] IntelliJ IDEA 终极版(2019.3 版) • IntelliJ 位于 /Applications/IntelliJ IDEA.app • Flutter 插件版本 45.1.2 • Dart 插件版本 193.7547
[✓] 已连接设备(1 个可用) • SM A107F(移动) • R9AM905ZREJ • android-arm • Android 10 (API 29)
!医生发现了 1 个类别的问题。
【问题讨论】:
共享首选项是经常更新的软件包之一,它们通常没有向后兼容性。我选择使用修复版本。现在我正在使用0.5.7+3
,它在任何模式下都可以正常工作。检查此解决方案,它可能会对您有所帮助。
@mahdishahbazi 感谢您的帮助,我也测试了 0.5.7+3 版本的发布模式,但我仍然对 prefrs 有问题:(
你遇到了什么错误?
@mahdishahbazi 在发布模式下我看不到日志,我只是测试了删除偏好设置,我看到一切正常,当我添加偏好设置时我遇到了问题!!!例如,在应用程序的“splashPage”中,我正在检查用户是否使用 prefrs 登录,我仍然留在“splashPage”中并且没有发生任何事情......
@Taleb 尝试使用FlutterError.onError
或ErrorWidget.builder
在屏幕上显示您的错误或登录日志文件。
【参考方案1】:
如果您使用 shared_preferences 0.2.4 及更高版本,请使用setMockInitialValues
:
SharedPreferences.setMockInitialValues(); // set initial values here if desired
对于早期版本,您可以手动完成:
const MethodChannel('plugins.flutter.io/shared_preferences')
.setMockMethodCallHandler((MethodCall methodCall) async
if (methodCall.method == 'getAll')
return <String, dynamic>; // set initial values here if desired
return null;
);
【讨论】:
以上是关于apk 发布模式下 shared_prefrences 的颤振错误(在通道 plugins.flutter.io/shared_preferences 上找不到方法 getAll 的实现)的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 电话身份验证在 APK 发布模式下不起作用
发布 apk 安装但启动时崩溃。该应用程序在调试模式下完美运行。我查看了 Android Studio,这是我的 adb logcat。
我的颤振应用程序没有从 release.apk 中的 api 获取数据,但在调试模式下工作