在flutter android应用程序崩溃中添加一些firebase库后

Posted

技术标签:

【中文标题】在flutter android应用程序崩溃中添加一些firebase库后【英文标题】:After adding some firebase library in flutter android app crashing 【发布时间】:2019-09-25 20:53:00 【问题描述】:

 minSdkVersion 21
        targetSdkVersion 28


 dependencies 
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.2.0'
    


 cloud_firestore: ^0.8.2  
  firebase_core: ^0.2.5
  firebase_messaging: ^5.0.1

2019-05-08 12:41:40.484 16013-16013/? E/Android运行时:致命 例外:主要 进程:myapp.com.myapp,PID:16013 java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/internal/InternalTokenProvider; 在 java.lang.Class.classForName(本机方法) 在 java.lang.Class.forName(Class.java:453) 在 java.lang.Class.forName(Class.java:378) 在 com.google.firebase.components.ComponentDiscovery.instantiate(com.google.firebase:firebase-common@@17.0.0:78) 在 com.google.firebase.components.ComponentDiscovery.discover(com.google.firebase:firebase-common@@17.0.0:71) 在 com.google.firebase.FirebaseApp.(com.google.firebase:firebase-common@@17.0.0:468) 在 com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@17.0.0:354) 在 com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@17.0.0:321) 在 com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@17.0.0:305) 在 com.google.firebase.provider.FirebaseInitProvider.onCreate(com.google.firebase:firebase-common@@17.0.0:53) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1919) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1894) 在 com.google.firebase.provider.FirebaseInitProvider.attachInfo(com.google.firebase:firebase-common@@17.0.0:47) 在 android.app.ActivityThread.installProvider(ActivityThread.java:6263) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:5829) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5737) 在 android.app.ActivityThread.-wrap1(未知来源:0) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1659) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6518) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 2019-05-08 12:41:40.488 16013-16013/? E/AndroidRuntime: 原因: java.lang.ClassNotFoundException:找不到类 路径上的“com.google.firebase.internal.InternalTokenProvider”: DexPathList[[压缩文件 “/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/base.apk”,压缩包 文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_dependencies_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_resources_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_0_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_1_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_2_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_3_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_4_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_5_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_6_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_7_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_8_apk.apk", 压缩文件 "/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/lib/arm, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/base.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_dependencies_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_resources_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_0_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_1_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_2_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_3_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_4_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_5_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_6_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_7_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_8_apk.apk!/lib/armeabi-v7a, /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_9_apk.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]] 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:379) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 24 更多 抑制:java.io.IOException:没有找到 dex 位置的原始 dex 文件 /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_resources_apk.apk 在 dalvik.system.DexFile.openDexFileNative(本机方法) 在 dalvik.system.DexFile.openDexFile(DexFile.java:353) 在 dalvik.system.DexFile.(DexFile.java:100) 在 dalvik.system.DexFile.(DexFile.java:74) 在 dalvik.system.DexPathList.loadDexFile(DexPathList.java:374) 在 dalvik.system.DexPathList.makeDexElements(DexPathList.java:337) 在 dalvik.system.DexPathList.(DexPathList.java:157) 在 dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:65) 在 dalvik.system.PathClassLoader.(PathClassLoader.java:64) 在 com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73) 在 com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88) 2019-05-08 12:41:40.491 16013-16013/? E/Android运行时:在 android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69) 在 android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:35) 在 android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:693) 在 android.app.LoadedApk.getClassLoader(LoadedApk.java:727) 在 android.app.LoadedApk.getResources(LoadedApk.java:954) 在 android.app.ContextImpl.createAppContext(ContextImpl.java:2270) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5654) ... 8 更多 抑制:java.io.IOException:没有找到 dex 位置的原始 dex 文件 /data/app/myapp.com.myapp-EPX9OHQHpG7_cpLXw2wCXQ==/split_lib_slice_7_apk.apk 在 dalvik.system.DexFile.openDexFileNative(本机方法) 在 dalvik.system.DexFile.openDexFile(DexFile.java:353) 在 dalvik.system.DexFile.(DexFile.java:100) 在 dalvik.system.DexFile.(DexFile.java:74) 在 dalvik.system.DexPathList.loadDexFile(DexPathList.java:374) 在 dalvik.system.DexPathList.makeDexElements(DexPathList.java:337) 在 dalvik.system.DexPathList.(DexPathList.java:157) 在 dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:65) 在 dalvik.system.PathClassLoader.(PathClassLoader.java:64) 在 com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73) 在 com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88) 在 android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69) 在 android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:35) 在 android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:693) 在 android.app.LoadedApk.getClassLoader(LoadedApk.java:727) 在 android.app.LoadedApk.getResources(LoadedApk.java:954) 在 android.app.ContextImpl.createAppContext(ContextImpl.java:2270) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5654) ... 8 更多

【问题讨论】:

你试过答案了吗? 是的,但还有一个问题可以帮助您***.com/questions/56039548/… 【参考方案1】:

改变这个:

firebase_core: ^0.2.5

到以下:

firebase_core: ^0.4.0

在此处查看最新更改:

https://pub.dev/packages/firebase_core#-changelog-tab-

【讨论】:

以上是关于在flutter android应用程序崩溃中添加一些firebase库后的主要内容,如果未能解决你的问题,请参考以下文章

Firestore 电话验证导致 ios 崩溃 (Flutter)

如果我包含某个包,Flutter android 应用程序在启动时崩溃

如何使 Android 和 iOS 的 Flutter App 崩溃(以测试 Firebase Crashlytics)?

签名发布后尝试调试时 Flutter android App 崩溃

Flutter Android App 在使用谷歌地图时崩溃

android 应用中的 image_picker 崩溃 - Flutter App