трепетание - сбой на устройстве Xiaomi, работающем на Android 4.4 (Kitkat) - ошибка Firebase - PullRequest
1 голос
/ 08 мая 2019

Я получил эту ошибку только на устройстве Xiaomi, особенно на Android 4.4 (KitKat).

Мое приложение неожиданно падает в начале, у меня есть журнал ошибок перехвата:

E/AndroidRuntime(15685): FATAL EXCEPTION: main
E/AndroidRuntime(15685): Process: zipedia.zipediaapps, PID: 15685
E/AndroidRuntime(15685): java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/zipedia.zipediaapps-1.apk"],nativeLibraryDirectories=[/data/app-lib/zipedia.zipediaapps-1, /vendor/lib, /system/lib]]
E/AndroidRuntime(15685):    at android.app.ActivityThread.installProvider(ActivityThread.java:4828)
E/AndroidRuntime(15685):    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4420)
E/AndroidRuntime(15685):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4360)
E/AndroidRuntime(15685):    at android.app.ActivityThread.access$1500(ActivityThread.java:141)
E/AndroidRuntime(15685):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272)
E/AndroidRuntime(15685):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(15685):    at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(15685):    at android.app.ActivityThread.main(ActivityThread.java:5052)
E/AndroidRuntime(15685):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(15685):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(15685):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
E/AndroidRuntime(15685):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
E/AndroidRuntime(15685):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(15685): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/zipedia.zipediaapps-1.apk"],nativeLibraryDirectories=[/data/app-lib/zipedia.zipediaapps-1, /vendor/lib, /system/lib]]
E/AndroidRuntime(15685):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime(15685):    at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
E/AndroidRuntime(15685):    at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
E/AndroidRuntime(15685):    at android.app.ActivityThread.installProvider(ActivityThread.java:4813)
E/AndroidRuntime(15685):    ... 12 more
W/ActivityManager( 1065):   Force finishing activity zipedia.zipediaapps/.MainActivity

Я использую библиотеку Firebase на pubspec.yaml:

firebase_auth: ^0.8.2 и firebase_messaging: ^4.0.0+4

есть идеи, чтобы решить это?

1 Ответ

1 голос
/ 05 июня 2019

Краткий ответ: Создайте файл APK с помощью команды: flutter build apk --target-platform=android-arm

Длинный ответ: Проблема связана с типом процессора устройства.В мире Android существует 7 различных типов процессоров (mips, mips64, X86, X86–64, armeabi, arm64-v8a, armeabi-v7a).Стандартная команда apk flutter build не создает универсальный файл.

Я думаю, что у вас проблема с процессором armeabi, который использует архитектуру на основе ARM.

Чтобы решить эту проблему, вам нужно будет создать специальный APK для поддержки устройства (семейства).И чтобы сделать это, вы можете использовать следующую команду:

flutter build apk --target-platform=android-arm

Значит ли это, что у вас будет две разные версии APK для одного и того же приложения?Да.

Здесь - дополнительная информация, а здесь - официальный документ Google.

...