flutter版本sdk,接入安卓后项目无法编译

按照流程在Android build.gradle中加入以下代码:
implementation 'cn.leancloud:storage-android:8.0.1'
implementation 'cn.leancloud:realtime-android:8.0.1'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'

LeanCloudApp也正常继承FlutterApplication
flutter下也正常配置
leancloud_official_plugin: ^1.0.0-beta.12
leancloud_storage:
path: ../packages/storage-sdk-flutter/

编译运行安卓版本,进入app后会变白屏,错误原因如下:

E/flutter (24438): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)

对应我项目代码如下:
await SpUtil.getInstance();

开始我判断是因为flutter中shared_preferences导致,去掉sp相关代码可以编译过,但是项目中shared_preferences不可或缺。同时也尝试取消安卓端3个implementation的引入,安卓项目又恢复正常,目前不清楚是什么原因导致,已经尝试解决很久,包括直接引入leancloud:storage-android这些的代码也无法解决,不过应该可能和shared_preferences导致的无关,不知道是不是sdk内部问题,另外ios端项目编译运行正常。多谢予以解决,紧急。

SDK 有依赖 shared_preferences,报错信息大概是没有找到 getAll 方法。
可以确认一下是否是项目的 shared_preferences 依赖与 SDK 的依赖版本不一致导致

抱歉追问下:
sdk依赖是flutter的leancloud_official_plugin和leancloud_storage中依赖shared_preferences导致冲突?如果这样为何ios版本正常编译。同时项目也因为在gradle中implementation引入三个包导致的安卓编译问题。
目前项目引入的sp版本是shared_preferences: '>=2.0.3 <4.0.0'
已经测试修改了版本,并没有解决问题

leancloud_official_plugin 应该没有依赖 shared_preferences。
可以需要在你们的项目中看下 pubspec.lock 中其他库对 shared_preferences 依赖是否正常。

更正下:
leancloud_storage引入了shared_preferences。
leancloud_storage我为源码引入,源码中pubspec.yaml修改leancloud_storage为shared_preferences: ^2.0.6。
同时项目中引入的sp_util的leancloud_storage版本为shared_preferences: '>=2.0.3 <4.0.0'。
此时pubspec.lock中shared_preferences版本为

理论上不存在冲突。都是2.0.6

你把 sdk 中 shared_preferences 的版本设置太高,旧的接口很有可能不支持

按照源码退回sp版本为^0.5.7+2
编译时报错如下:
···D:\flutter.pub-cache\hosted\pub.flutter-io.cn\shared_preferences-0.5.7+3\android\src\main\java\io\flutter\plugins\sharedpreferences\SharedPreferencesPlugin.java:18: ����: [deprecation] PluginRegistry�е�Registrar�ѹ�ʱ
public static void registerWith(PluginRegistry.Registrar registrar) {


同时白屏问题依旧没有解决。

重新修改为^0.5.7+3 第一个问题没了,白屏,getAll问题依旧,不认为是sp版本问题导致,我尝试使用网上的方法:
SharedPreferences.setMockInitialValues (Map values);
在await SpUtil.getInstance();初始化之前调用编译可以过,但是sp也因此不能用了。

更正:^0.5.7+3 第一个问题没解决,刚才只是没注意到的,但是增加SharedPreferences.setMockInitialValues ({});后一样可以编译

这种项目的依赖问题可能需要开发者来排查一下,因为不同的项目冲突的情况也不一样。
建议可以在一个新的工程里,【逐步】引入目前你们项目的需要的依赖,先能准确定位问题。
根据前面的描述,我猜测是在 shared_preference 的 Android 实现上有缺失。可以尝试反编译一下对应的 jar 包,以及对比一下正常版本的 jar 包。

已解决,官网文档和github上的版本不统一,一个7.几一个8.几版本

github项目地址多少呢?