Aze*_*mil 9 android release-builds sharedpreferences flutter
在我的 flutter 应用程序中,我实现了一个入门视图。因为它应该只加载一次,所以我使用共享首选项来存储一个整数来表示已经显示了入职。当我在调试模式下运行应用程序时,一切正常。但是当我构建它的发布版本时,它不起作用。
而且我的应用程序还使用了 firebase 移动身份验证。我之所以提到这一点,是因为这也可能是一个原因。
编码:
case InitializeEvent:
SharedPreferences prefs = await SharedPreferences.getInstance();
int initScreen = prefs.getInt(SharedPrefUtil.INIT_SCREEN);
await prefs.setInt(SharedPrefUtil.INIT_SCREEN, 1);
if (initScreen == 1) {
add(CheckAppConfigEvent());
} else {
yield state.clone(page: RootState.ONBOARDING_PAGE);
}
yield state.clone(loading: false);
break;
Run Code Online (Sandbox Code Playgroud)
因此,在上面的代码中,如果我注释初始化共享首选项,读取和写入行并在 if else 语句中设置 true 或 false,则在发布版本中一切正常。这就是为什么我认为问题在于初始化共享首选项。
而且我只允许互联网。我是否缺少 AndroidManifest.xml 中的任何权限
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
我的应用程序也无法在发布版本中运行,问题是由于shared_preferences包造成的。
我在发布版本中收到以下错误:
MissingPluginException(在通道 plugins.flutter.io/shared_preferences 上找不到方法 getAll 的实现)
我尝试了几种解决方案:
但没有任何效果。
该应用程序在调试版本中运行良好,但在发布版本中却没有。
然后我试过了
flutter build apk --no-shrink
flutter build appbundle --no-shrink
并且该应用程序在发布版本中也运行良好。但问题是在不缩小代码的情况下解决的。所以这需要修复。
希望 Flutter 团队能够调查并解决这个问题。
编辑:
已经向 Flutter 团队报告了这个问题。
https://github.com/flutter/flutter/issues/65334
| 归档时间: |
|
| 查看次数: |
3133 次 |
| 最近记录: |