lassCastException:io.flutter.app.FlutterPluginRegistry无法强制转换



当我们卸载应用程序并首次加载时,notificationiotn正在工作,但之后它显示此错误



java.lang.RuntimeException:无法创建服务io.flutter.plugins.firebaseessaging.FlutterfirebaseMessaging服务:java.lang.ClassCastException:io.flutter.app.FlutterPluginRegistry无法强制转换为io.flutter.embedding.engine.FlutterEngine在android.app.ActivityThread.handleCreateService(ActivityThreads.java:3976)在android.app.ActivityThread.-wra5(未知来源:0)在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:2109)在android.os.Handler.dispatchMessage(Handler.java:109)在android.os.Looper.loop(Looper.java:166)在android.app.ActivityThread.main(ActivityThreads.java:7555)位于java.lang.reflect.Method.ioke(本机方法)网址:com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:963)由以下原因引起:java.lang.ClassCastException:io.flutter.app.FlutterPluginRegistry无法强制转换为io.flutter.embedding.engine.FlutterEngine网址:com.midhilaj.aquarium_shop.Application.registerWith(Application.java:25)位于io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.startBackgroundIsolate(FlutterFireBaseMessagingServices.java:164)位于io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.onCreate(FlutterFireBaseMessagingServices.java:77)在android.app.ActivityThread.handleCreateService(ActivityThreads.java:3956)在android.app.ActivityThread.-wra5(未知来源:0)在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:2109)在android.os.Handler.dispatchMessage(Handler.java:109)在android.os.Looper.loop(Looper.java:166)在android.app.ActivityThread.main(ActivityThreads.java:7555)位于java.lang.reflect.Method.ioke(本机方法)网址:com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:963)



D/FlutterActivity(3682):使用启动主题作为正常主题。D/FlutterActivityAndFragmentDelegate(3682):设置FlutterEngine。D/FlutterActivityAndFragmentDelegate(3682):无首选提供了FlutterEngine。为此创建一个新的FlutterEngineFlutterFragment。D/FlutterActivity AndFragmentDelegate(3682):将FlutterEngine附加到拥有此片段的活动。D/FlutterView(3682):从FlutterEngine分离:nullD/FlutterView(3682):未连接到发动机上。无所事事。D/FlutterView(3682):连接到FlutterEngine:io.flutter.embedding.engine.FlutterEngine@54b88a0D/FlutterActivityAndFragmentDelegate(3682):执行飞镖入口点:main,并发送初始路由:/将文件同步到设备DUB LX1…I/flutter(3682):-----=--令牌:db37iEIOPw2r5Y9LpYpXz-HV/FA(3682):不活动,断开与服务的连接I/flutter(3682):e222banner1=>{actionPage:null,buttonLabel:null,buttonLabelAr:null,img:https://firebasestorage.googleapis.com/,subTitle:null,subTitleAr:null,title:金色FIsh,title Ar:null}I/flutter(3682):getMyCart fn I/flutterhttps://firebasestorage.googleapis.com/,subTitle:null,subTitleAr:null,title:金色FIsh,title Ar:null}I/flutter(3682):获取MyCart用户6AiQ2pG8nsaskpcUbbyJM7eCPuR2D/ConnectivityManager(3682):requestNetwork,调用应用程序为:com.midhilaj.aquarium_shop W/动态模块(3682):本地模块找不到providerinstaller的描述符类。I/DynamiteModule(3682):考虑本地模块提供程序安装程序:0和远程模块providerinstaller:0 W/providerinstaller(3682):未能加载providerinstaller模块:找不到可接受的模块。本地版本为0,远程版本为0。D/HwFLClassLoader(3682):USE_FEATURE_LIST没有初始化!W/合子64(3682):ClassLoaderContext类路径大小位置0不匹配。预期=0,实际=1(PCL[]|PCL[/system/framework.com/android.media.remoteddisplay.jar*818632460])V/NativeCrypto(3682):正在注册com/google/android/gms.org/conscrypt/NativeCrypto的286原生方法。。。D/NetworkSecurityConfig(3682):无网络安全配置指定,使用平台默认I/ProviderInstaller(3682):已安装默认安全提供程序GmsCore_OpenSSLD/ConnectivityManager(3682):requestNetwork,调用应用程序为:com.midhilaj.aquarium_shop I/合子64(3682):执行部分代码缓存集合,代码=60KB,数据=46KB I/合子64(3682):在代码缓存之后collection,code=60KB,data=46KB I/合子64(3682):递增代码缓存容量达到256KB I/合子64(3682):正在启动配置文件保护程序IsSaveProfileNow结束。I/flutter(3682):快照为空D/AndroidRuntime(3682):关闭VM E/AndroidRuntime致命异常:主E/AndroidRuntime(3682):进程:com.midhilaj.aquarium_shop,PID:382 E/AndroidRuntime(3682):java.lang.RuntimeException:无法创建服务io.flutter.plugins.firebaseessaging.FlutterfirebaseMessaging服务:java.lang.ClassCastException:io.flutter.app.FlutterPluginRegistry无法强制转换为io.flutter.embedding.engine.FlutterEngineE/AndroidRuntime(3682):位于android.app.ActivityThread.handleCreateService(ActivityThreads.java:3976)E/AndroidRuntime(3682):在android.app.ActivityThread.-wra5(未知来源:0)E/AndroidRuntime(3682):位于android.app.ActivityThread$H.handleMessage(ActivityThreads.java:2109)E/AndroidRuntime(3682):位于android.os.Handler.dispatchMessage(Handler.java:109)E/AndroidRuntime(3682):在android.os.Looper.loop(Looper.java:166)E/AndroidRuntime(3682):在android.app.ActivityThread.main上(ActivityThreads.java:7555)E/AndroidRuntime(3682):位于java.lang.reflect.Method.ioke(Native方法)E/AndroidRuntime(3682):在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)E/AndroidRuntime(3682):位于com.android.internal.os.ZygoteInit.main(ZygoteNit.java:963)E/AndroidRuntime(3682):由java.lang.ClassCastException引起:io.flutter.app.FlutterPluginRegistry无法强制转换为io.flutter.embedding.engine.FlutterEngine E/AndroidRuntime(3682):位于com.midhilaj.aquarium_shop.Application.registerWith(Application.java:25)E/AndroidRuntime(3682):位于io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.startBackgroundIsolate(FlutterFireBaseMessagingServices.java:164)E/AndroidRuntime(3682):位于io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.onCreate(FlutterFireBaseMessagingServices.java:77)E/AndroidRuntime(3682):位于android.app.ActivityThread.handleCreateService(ActivityThreads.java:3956)E/AndroidRuntime(3682):。。。8个I/O进程(3682):发送信号PID:382 SIG:9与设备的连接丢失。

import io.flutter.app.FlutterApplication;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;
public class Application extends FlutterApplication implements PluginRegistrantCallback {
FlutterEngine fe;
@Override
public void onCreate() {
super.onCreate();
FlutterFirebaseMessagingService.setPluginRegistrant(this);
}
@Override
public void registerWith(PluginRegistry registry) {
GeneratedPluginRegistrant.registerWith((FlutterEngine) registry);
}
}

以这种方式使用FlutterEngine

它解决了我的问题

GeneratedPluginRegistrant.registerWith(FlutterEngine(applicationContext));

我浏览了无数的帖子和答案,直到我看到这个:迁移指南这是新的flutter版本的迁移指南。我的选择是

新的FlutterActivity/Flutter应用程序不再需要手动注册您的插件。当将创建基础FlutterEngine。

override fun registerWith(registry: PluginRegistry) {
// comment the below methods out or remove the method 
// GeneratedPluginRegistrant.registerWith(FlutterEngine(applicationContext));
// GeneratedPluginRegistrant.registerWith((registry as FlutterEngine?)!!)
} 

最新更新