【发布时间】:2020-12-06 09:26:56
【问题描述】:
我通常使用 codemagic.com 的构建服务来构建我的移动应用程序。在这周我没有更改任何代码,除了内部版本号。
今天我的手机在 new AppBundle Compile 后崩溃了,下面的错误堆栈来自 firebase console。
致命异常:java.lang.NoSuchMethodError 无静态方法 createAsync(Landroid/os/Looper;)Landroid/os/Handler;在 Landroidx/core/os/HandlerCompat 类中;或其超类('androidx.core.os.HandlerCompat' 的声明出现在 /data/app/zipedia.zipediaapps-BpzH5e6LIznAEB3YpE_SGw==/base.apk)
这个崩溃发生在本周(上周还可以),这意味着 3rd 方插件库或来自 Flutter 的一些更新,但我不知道是哪个插件导致了这个崩溃,因为我没有改变我的代码。
以下是我的pubspec.yaml 规格:
rxdart_codemod: ^0.1.5
angles: ^1.0.1
app_settings: ^1.0.5
archive: ^2.0.8
flutter_cache_manager: ^1.4.0
cached_network_image: ^2.2.0+1
carousel_slider: ^1.3.0
cron: ^0.2.1
crypto: ^2.0.6
cupertino_icons: ^0.1.2
date_format: ^1.0.5
device_id: ^0.1.3
dio: ^3.0.9
easy_alert: ^0.0.2
localstorage: ^2.0.0
audioplayers: ^0.13.1
path_provider: ^1.1.0
esys_flutter_share: ^1.0.2
flutter_compass: ^0.3.2
flutter_html: ^0.9.6
flutter_local_notifications: ^0.8.2
flutter_offline: ^0.2.4+1
flutter_swiper: ^1.1.6
flutter_xlider: ^2.4.5
font_awesome_flutter: ^8.2.0
geolocator: ^5.0.1
google_maps_flutter: ^0.2.0
google_sign_in: ^4.0.1+1
http: ^0.12.1
libcalendar: ^0.2.0
observable: ^0.22.2
location : ^2.3.0
numberpicker: ^1.0.0
pigment: ^1.0.3
# rxdart: ^0.24.1
rxdart: ">=0.18.1 <0.24.1"
shared_preferences: ^0.5.1+1
shimmer: ^1.0.0
unicode: ^0.1.0
url_launcher: ^5.0.2
validate: ^1.6.0
vibrate: ^0.0.4
# quran purpose
after_layout: ^1.0.7+2
draggable_scrollbar: ^0.0.4
flutter_web_browser: ^0.11.0
flutter_youtube: ^1.1.6
google_api_availability: ^2.0.1
indexed_list_view: ^0.0.5
permission_handler: ^3.1.0
queries: ^0.1.4
rect_getter: ^0.0.1
scroll_to_index: any
sqflite: ^1.1.5
tuple: ^1.0.2
xml2json: ^3.0.3
firebase_messaging: ^5.1.6
firebase_analytics: ^3.0.2
firebase_core: ^0.4.0+3
firebase_auth: ^0.11.1+6
firebase_admob: ^0.9.0+1
firebase_in_app_messaging: ^0.0.1+3
#button_style
superellipse_shape: ^0.1.5
#device info
device_info: ^0.4.0+2
#in-app-purchase
in_app_purchase: ^0.2.0+6
#realtime-error-reporting
sentry: any
#system_info
system_info: ^0.1.1
#highlight for tutorial
highlighter_coachmark: ^0.0.3
#detect sound
volume: ^0.1.0
#admob
admob_flutter: ^0.3.2
#other
bubble_tab_indicator: "^0.1.4"
material_design_icons_flutter: ^3.0.3289
scoped_model: ^1.0.1
flutter_slidable: ^0.4.9
kiwi: ^0.1.0
flutter_markdown: ^0.2.0
#download & save file to storage
flutter_downloader: ^1.2.1
native_ads: ^0.2.0
onesignal_flutter: ^2.0.0
##TEMPORARY DISABLED
#flutter_facebook_login: ^3.0.0
USB 调试日志:
08-17 11:18:42.282 12595 12600 I zygote64:将代码缓存容量增加到 128KB 08-17 11:18:42.283 12595 12595 I CrashlyticsInitProvider: CrashlyticsInitProvider 初始化成功 08-17 11:18:42.285 12595 12595 D AndroidRuntime: 关闭虚拟机
--------- 崩溃开始 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 致命异常: main 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 进程: zipedia.zipediaapps, PID: 12595 08-17 11:18:42.285 12595 12595 E AndroidRuntime: java.lang.NoSuchMethodError: 没有静态方法 createAsync(Landroid/os/Looper;)Landroid/os/Handler;在 Landroidx/core/os/HandlerCompat 类中;或其超类(“androidx.core.os.HandlerCompat”的声明出现在 /data/app/zipedia.zipediaapps-XKGzJQs6twT4qKb4AGKGTQ==/base.apk)
08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 androidx.work.impl.DefaultRunnableScheduler.**(DefaultRunnableScheduler.java:40) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 androidx.work.Configuration.(Configuration.java:106) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 androidx.work.Configuration$Builder.build(Configuration.java:434) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 androidx.work.impl.WorkManagerInitializer.onCreate(WorkManagerInitializer.java:40) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1919) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1894) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.app.ActivityThread.installProvider(ActivityThread.java:6316) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:5882) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5803) 08-17 11:18:42.285 12595 12595 E AndroidRuntime:在 android.app.ActivityThread.-wrap1(未知来源:0) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1666) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.os.Handler.dispatchMessage(Handler.java:105) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.os.Looper.loop(Looper.java:251) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 android.app.ActivityThread.main(ActivityThread.java:6572) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 08-17 11:18:42.285 12595 12595 E AndroidRuntime: 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 08-17 11:18:43.407 703 779 E ANDR-PERF-OPTSHANDLER: perf_lock_rel: 更新 /sys/class/mmc_host/mmc0/clk_scaling/enable 为 0 08-17 11:18:43.407 703 779 E ANDR-PERF-OPTSHANDLER:返回值 2 08-17 11:18:44.199 2831 4931 I ActivityManager: Killing 10866:com.sonymobile.smartcharger/1000 (adj 906): empty #17 08-17 11:18:44.210 2831 4931 I ActivityManager: Killing 11915:com.discord/u0a315 (adj 906): empty #18 08-17 11:18:44.698 677 677 D audio_hw_primary:out_standby:输入:流(0xf13d4000)用例(1:低延迟播放) 08-17 11:18:44.802 677 677 D audio_hw_primary:disable_audio_route:重置和更新混音器路径:低延迟播放 08-17 11:18:44.807 677 677 D hardware_info: hw_info_append_hw_type : device_name = 扬声器 08-17 11:18:44.808 677 677 D audio_hw_primary:disable_snd_device:snd_device(84:扬声器) 08-17 11:18:44.829 677 677 D hardware_info: hw_info_append_hw_type : device_name = vi-feedback
08-17 11:18:44.830 677 677 D audio_hw_primary: disable_snd_device: snd_device(242: vi-feedback) 08-17 11:18:44.830 677 677 D msm8974_platform:platform_split_snd_device:snd_device(242) num devices(0) new_snd_devices(-238434933) 08-17 11:18:44.830 677 677 D audio_hw_primary:disable_audio_route:重置和更新混音器路径:spkr-vi-record 08-17 11:18:44.867 677 677 D audio_hw_extn:audio_extn_get_anc_enabled:anc_enabled:0 08-17 11:18:44.867 677 677 D audio_hw_extn:audio_extn_get_anc_enabled:anc_enabled:0 08-17 11:18:44.867 677 677 D audio_hw_primary:out_standby:退出 08-17 11:18:46.288 12595 12595 E CrashlyticsCore:执行任务失败。 08-17 11:18:46.288 12595 12595 E CrashlyticsCore: java.util.concurrent.TimeoutException 08-17 11:18:46.288 12595 12595 E CrashlyticsCore: at java.util.concurrent.FutureTask.get(FutureTask.java:206) 08-17 11:18:46.288 12595 12595 E CrashlyticsCore:在 com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(CrashlyticsBackgroundWorker.java:41) 08-17 11:18:46.288 12595 12595 E CrashlyticsCore:在 com.crashlytics.android.core.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:321) 08-17 11:18:46.288 12595 12595 E CrashlyticsCore:在 com.crashlytics.android.core.CrashlyticsController$6.onUncaughtException(CrashlyticsController.java:301) 08-17 11:18:46.288 12595 12595 E CrashlyticsCore:在 com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:42) 08-17 11:18:46.288 12595 12595 E CrashlyticsCore: 在 java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) 08-17 11:18:46.288 12595 12595 E CrashlyticsCore: 在 java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063) 08-17 11:18:46.288 12595 12595 E CrashlyticsCore: 在 java.lang.Thread.dispatchUncaughtException(Thread.java:1953) 08-17 11:18:46.301 2831 3677 D ActivityManager:新的保管箱条目:zipedia.zipediaapps,data_app_crash,3558ffd2-7966-4d8d-8ba6-2ceca752fb06 08-17 11:18:46.310 2831 3677 W ActivityManager: 强制完成活动 zipedia.zipediaapps/.MainActivity 08-17 11:18:46.313 2831 3677 D ActivityTrigger: ActivityTrigger activityPauseTrigger
08-17 11:18:46.323 2831 3677 W ActivityManager: 强制完成活动 com.android.vending/.AssetBrowserActivity 08-17 11:18:46.335 2831 3677 I ActivityManager: Killing 12013:com.sonymobile.coverapp2/1000 (adj 906): empty #17 08-17 11:18:46.338 12111 12111 I Finsky:[2] rjc.onTrimMemory(1):内存修整请求到 20 级 08-17 11:18:46.339 12111 12111 I Finsky:[2] rjc.onTrimMemory(2):刷新内存图像缓存 08-17 11:18:46.352 2831 2891 W BroadcastQueue:不允许后台执行:接收 Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10(有附加功能)} 到 com.google.android.gms/.stats。 service.DropBoxEntryAddedReceiver 08-17 11:18:46.352 2831 2891 W BroadcastQueue:不允许后台执行:接收 Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10(有附加功能)} 到 com.google.android.gms/.chimera。 GmsIntentOperationService$PersistentTrustedReceiver 08-17 11:18:46.353 2831 2891 W BroadcastQueue:不允许后台执行:接收 Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10(有附加功能)} 到 com.sonyericsson.crashmonitor/.receiver.CrashMonitorServiceBroadcastReceiver 08-17 11:18:46.356 2496 2496 I JavaDumper:main:dest_path:/data/system/log/jd_dropboxfiles/data_app_crash@1597637926341.txt 08-17 11:18:46.356 2496 2496 I JavaDumper:main: tot_read: 1699, tot_write: 1699 08-17 11:18:46.356 2496 2496 I JavaDumper:main: 成功复制dropbox文件到/data/system/log/jd_dropboxfiles/data_app_crash@1597637926341.txt 08-17 11:18:46.357 2496 2496 D clmlib:得到活动:0x00000008 08-17 11:18:46.359 12111 12111 W ProxyAndroidLoggerBackend:配置前收到的 Flogger 日志过多。丢弃旧日志。 08-17 11:18:46.362 12111 12248 W ProxyAndroidLoggerBackend:配置前收到的 Flogger 日志过多。丢弃旧日志。 08-17 11:18:46.363 2496 2496 I JavaDumper:JavaDumperThread: addEvent: data_app_crash@1597637926341.txt processName: zipedia.zipediaapps 08-17 11:18:46.363 2496 2540 I JavaDumper:JavaDumperThread: 事件: data_app_crash@1597637926341.txt 时间戳: 1597637926 08-17 11:18:46.419 2496 2540 W JavaDumper:JavaDumper:无法初始化转储目录:未知错误 -95 08-17 11:18:46.420 2496 2540 E JavaDumper:FW: utils.c(257): mkdir (/data/crashdata) 失败。文件已存在 08-17 11:18:46.423 2831 2893 I ActivityManager:显示包 zipedia.zipediaapps u0 的崩溃对话框
有什么想法吗?
【问题讨论】:
-
你的颤振版本是什么?
-
@JohnJoe 是 codemagic.com 的最后一个稳定频道,但最后一次,我改为 1.20.0
-
更新前有没有 pubspec.yaml 副本。也许这将帮助您通过比较包的版本来解决问题
-
1.20更新后有很多人报告建筑问题。没有简单的方法可以检查哪些包已损坏。问题不是颤振,而是包生态系统。检查较小的包裹,通常由一个人或一个小团队管理。较大的软件包通常会经常更新。
标签: android flutter crash codemagic