duckduckgo / Android

DuckDuckGo Android App
https://play.google.com/store/apps/details?id=com.duckduckgo.mobile.android
Apache License 2.0
3.76k stars 888 forks source link

[Bug] Crashes every time on start #3914

Open 2011 opened 9 months ago

2011 commented 9 months ago

Describe the bug

Every time I attempt to start DuckDuckGo, it crashes without ever opening.

How to Reproduce

  1. Tap on the DuckDuckGo icon
  2. Get a message (in a few seconds) stating "DuckDuckGo has stopped Open app again"

Expected behavior

I expect the application to run.

Environment

- DDG App Version: 5.177.1
- Device: Teclast T10 tablet
- OS: Android 7.0

The log file generated:

[11-23 10:46:15.428 691:707 I/ActivityManager]
START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.duckduckgo.mobile.android/com.duckduckgo.app.launch.Launcher bnds=[906,360][1280,596]} from uid 10011 on display 0

[11-23 10:46:15.483 691:7815 I/ActivityManager]
Start proc 5660:com.duckduckgo.mobile.android/u0a90 for activity com.duckduckgo.mobile.android/com.duckduckgo.app.launch.Launcher

[11-23 10:46:16.254 691:7131 I/ActivityManager]
START u0 {cmp=com.duckduckgo.mobile.android/com.duckduckgo.app.onboarding.ui.OnboardingActivity} from uid 10090 on display 0

[11-23 10:46:16.611 5660:5708 I/WM-WorkerWrapper]
Work [ id=4678c155-7c56-4539-8148-f139e797b60d, tags={ DATA_REMOVAL_AD_CLICK_WORKER_TAG, com.duckduckgo.adclick.impl.DataRemovalAdClickWorker } ] was cancelled
java.util.concurrent.CancellationException: Task was cancelled.
        at androidx.work.impl.utils.futures.AbstractFuture.cancellationExceptionWithCause(AbstractFuture.java:1184)
        at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:514)
        at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
        at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)

[11-23 10:46:16.627 5660:5708 I/WM-WorkerWrapper]
Work [ id=0b128f15-57bf-4e6f-9e97-c4d7eaad7c87, tags={ DAILY_REPORTING_AD_CLICK_WORKER_TAG, com.duckduckgo.adclick.impl.pixels.AdClickDailyReportingWorker } ] was cancelled
java.util.concurrent.CancellationException: Task was cancelled.
        at androidx.work.impl.utils.futures.AbstractFuture.cancellationExceptionWithCause(AbstractFuture.java:1184)
        at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:514)
        at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
        at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)

[11-23 10:46:16.637 5660:5708 I/WM-WorkerWrapper]
Work [ id=5e402450-f583-4870-a811-f7dd64ee7a4f, tags={ com.duckduckgo.mobile.android.vpn.heartbeat.VpnServiceHeartbeatMonitorWorker, VpnServiceHeartbeatMonitorWorker } ] was cancelled
java.util.concurrent.CancellationException: Task was cancelled.
        at androidx.work.impl.utils.futures.AbstractFuture.cancellationExceptionWithCause(AbstractFuture.java:1184)
        at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:514)
        at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
        at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)

[11-23 10:46:16.652 5660:5708 I/WM-WorkerWrapper]
Work [ id=2bcea419-f997-4b84-89c2-8e36300757b7, tags={ PRIVACY_CONFIG_DOWNLOADER_WORKER_TAG, com.duckduckgo.privacy.config.impl.workers.PrivacyConfigDownloadWorker } ] was cancelled
java.util.concurrent.CancellationException: Task was cancelled.
        at androidx.work.impl.utils.futures.AbstractFuture.cancellationExceptionWithCause(AbstractFuture.java:1184)
        at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:514)
        at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
        at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)

[11-23 10:46:16.665 5660:5706 I/WM-WorkerWrapper]
Work [ id=f5abe9d5-228e-4c8a-896f-8d765c78e4af, tags={ com.duckduckgo.remote.messaging.impl.RemoteMessagingConfigDownloadWorker, REMOTE_MESSAGING_DOWNLOADER_WORKER_TAG } ] was cancelled
java.util.concurrent.CancellationException: Task was cancelled.
        at androidx.work.impl.utils.futures.AbstractFuture.cancellationExceptionWithCause(AbstractFuture.java:1184)
        at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:514)
        at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
        at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)

[11-23 10:46:17.144 691:7333 I/WindowManager]
Destroying surface Surface(name=com.duckduckgo.mobile.android/com.duckduckgo.app.launch.Launcher) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.WindowManagerService.tryStartExitingAnimation:3021 com.android.server.wm.WindowManagerService.relayoutWindow:2901 com.android.server.wm.Session.relayout:215 android.view.IWindowSession$Stub.onTransact:286 com.android.server.wm.Session.onTransact:136 

[11-23 10:46:17.180 5660:5696 E/AndroidRuntime]
FATAL EXCEPTION: main
Process: com.duckduckgo.mobile.android, PID: 5660
java.lang.RuntimeException: Canvas: trying to draw too large(114308160bytes) bitmap.
        at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260)
        at android.graphics.Canvas.drawBitmap(Canvas.java:1415)
        at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:545)
        at android.view.View.getDrawableRenderNode(View.java:17313)
        at android.view.View.drawBackground(View.java:17249)
        at android.view.View.draw(View.java:17061)
        at android.view.View.updateDisplayListIfDirty(View.java:16052)
        at android.view.View.draw(View.java:16836)
        at android.view.ViewGroup.drawChild(ViewGroup.java:3764)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3550)
        at android.view.View.draw(View.java:17073)
        at androidx.viewpager.widget.ViewPager.draw(ViewPager.java:2426)
        at android.view.View.updateDisplayListIfDirty(View.java:16052)
        at android.view.View.draw(View.java:16836)
        at android.view.ViewGroup.drawChild(ViewGroup.java:3764)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3550)
        at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1994)
        at android.view.View.draw(View.java:17073)
        at android.view.View.updateDisplayListIfDirty(View.java:16052)
        at android.view.View.draw(View.java:16836)
        at android.view.ViewGroup.drawChild(ViewGroup.java:3764)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3550)
        at android.view.View.updateDisplayListIfDirty(View.java:16047)
        at android.view.View.draw(View.java:16836)
        at android.view.ViewGroup.drawChild(ViewGroup.java:3764)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3550)
        at android.view.View.updateDisplayListIfDirty(View.java:16047)
        at android.view.View.draw(View.java:16836)
        at android.view.ViewGroup.drawChild(ViewGroup.java:3764)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3550)
        at android.view.View.updateDisplayListIfDirty(View.java:16047)
        at android.view.View.draw(View.java:16836)
        at android.view.ViewGroup.drawChild(ViewGroup.java:3764)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3550)
        at android.view.View.updateDisplayListIfDirty(View.java:16047)
        at android.view.View.draw(View.java:16836)
        at android.view.ViewGroup.drawChild(ViewGroup.java:3764)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3550)
        at android.view.View.draw(View.java:17073)
        at com.android.internal.policy.DecorView.draw(DecorView.java:751)
        at android.view.View.updateDisplayListIfDirty(View.java:16052)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:656)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:662)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:770)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:2796)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2604)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2211)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6301)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
        at android.view.Choreographer.doCallbacks(Choreographer.java:683)
        at android.view.Choreographer.doFrame(Choreographer.java:619)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

[11-23 10:46:17.182 691:1952 W/ActivityManager]
  Force finishing activity com.duckduckgo.mobile.android/com.duckduckgo.app.onboarding.ui.OnboardingActivity

[11-23 10:46:17.466 691:1843 W/InputDispatcher]
channel 'eadaa6 com.duckduckgo.mobile.android/com.duckduckgo.app.launch.Launcher (server)' ~ Consumer closed input channel or an error occurred.  events=0x9

[11-23 10:46:17.466 691:1843 E/InputDispatcher]
channel 'eadaa6 com.duckduckgo.mobile.android/com.duckduckgo.app.launch.Launcher (server)' ~ Channel is unrecoverably broken and will be disposed!

[11-23 10:46:17.466 691:1843 W/InputDispatcher]
channel 'e3381df com.duckduckgo.mobile.android/com.duckduckgo.app.onboarding.ui.OnboardingActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9

[11-23 10:46:17.466 691:1843 E/InputDispatcher]
channel 'e3381df com.duckduckgo.mobile.android/com.duckduckgo.app.onboarding.ui.OnboardingActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

[11-23 10:46:17.471 691:7410 I/ActivityManager]
Process com.duckduckgo.mobile.android (pid 5660) has died

[11-23 10:46:17.471 691:7410 W/ActivityManager]
Scheduling restart of crashed service com.duckduckgo.mobile.android/androidx.work.impl.background.systemjob.SystemJobService in 1000ms

[11-23 10:46:17.480 691:3231 I/WindowManager]
WIN DEATH: Window{eadaa6 u0 com.duckduckgo.mobile.android/com.duckduckgo.app.launch.Launcher}

[11-23 10:46:17.480 691:3231 W/InputDispatcher]
Attempted to unregister already unregistered input channel 'eadaa6 com.duckduckgo.mobile.android/com.duckduckgo.app.launch.Launcher (server)'

[11-23 10:46:17.491 691:2447 I/WindowManager]
WIN DEATH: Window{e3381df u0 com.duckduckgo.mobile.android/com.duckduckgo.app.onboarding.ui.OnboardingActivity}

[11-23 10:46:17.491 691:2447 W/InputDispatcher]
Attempted to unregister already unregistered input channel 'e3381df com.duckduckgo.mobile.android/com.duckduckgo.app.onboarding.ui.OnboardingActivity (server)'

[11-23 10:46:17.492 691:2447 I/WindowManager]
Destroying surface Surface(name=com.duckduckgo.mobile.android/com.duckduckgo.app.onboarding.ui.OnboardingActivity) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.removeLocked:1449 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2482 com.android.server.wm.WindowManagerService.removeWindowLocked:2440 com.android.server.wm.WindowState$DeathRecipient.binderDied:1780 android.os.BinderProxy.sendDeathNotice:688 <bottom of call stack> 

[11-23 10:46:17.528 691:725 I/WindowManager]
Destroying surface Surface(name=Starting com.duckduckgo.mobile.android) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.removeLocked:1449 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2482 com.android.server.wm.WindowManagerService.removeWindowLocked:2440 com.android.server.wm.WindowManagerService.removeWindowLocked:2309 com.android.server.wm.WindowManagerService.removeWindow:2304 com.android.server.wm.Session.remove:193 

[11-23 10:46:17.578 691:1952 W/ActivityManager]
Ignoring remove of inactive process: ProcessRecord{ae74540 0:com.duckduckgo.mobile.android/u0a90}

[11-23 10:46:17.593 691:7257 I/WindowManager]
Destroying surface Surface(name=Application Error: com.duckduckgo.mobile.android) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementInner:429 com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop:232 com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement:180 com.android.server.wm.WindowManagerService.relayoutWindow:2940 com.android.server.wm.Session.relayout:215 

[11-23 10:56:17.609 691:691 I/ActivityManager]
Start proc 5848:com.duckduckgo.mobile.android/u0a90 for service com.duckduckgo.mobile.android/androidx.work.impl.background.systemjob.SystemJobService

[11-23 10:56:18.737 5848:5891 I/WM-WorkerWrapper]
Work [ id=542cf27a-1374-4bbc-8106-e9dcf5ea3f54, tags={ PRIVACY_CONFIG_DOWNLOADER_WORKER_TAG, com.duckduckgo.privacy.config.impl.workers.PrivacyConfigDownloadWorker } ] was cancelled
java.util.concurrent.CancellationException: Task was cancelled.
        at androidx.work.impl.utils.futures.AbstractFuture.cancellationExceptionWithCause(AbstractFuture.java:1184)
        at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:514)
        at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
        at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)

[11-23 10:56:18.752 5848:5891 I/WM-WorkerWrapper]
Work [ id=ba77969f-fd0b-42a3-8754-43a1c95a4399, tags={ com.duckduckgo.remote.messaging.impl.RemoteMessagingConfigDownloadWorker, REMOTE_MESSAGING_DOWNLOADER_WORKER_TAG } ] was cancelled
java.util.concurrent.CancellationException: Task was cancelled.
        at androidx.work.impl.utils.futures.AbstractFuture.cancellationExceptionWithCause(AbstractFuture.java:1184)
        at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:514)
        at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
        at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)

[11-23 10:56:18.859 5848:5893 I/WM-WorkerWrapper]
Worker result SUCCESS for Work [ id=23340447-9747-4f90-a50e-1c4b719d9f30, tags={ DATA_REMOVAL_AD_CLICK_WORKER_TAG, com.duckduckgo.adclick.impl.DataRemovalAdClickWorker } ]

[11-23 10:56:18.912 5848:5893 I/WM-WorkerWrapper]
Worker result SUCCESS for Work [ id=e1d55893-3edd-45f5-af1e-5c3e790ce575, tags={ DAILY_REPORTING_AD_CLICK_WORKER_TAG, com.duckduckgo.adclick.impl.pixels.AdClickDailyReportingWorker } ]

[11-23 10:56:18.938 5848:5891 I/WM-WorkerWrapper]
Worker result SUCCESS for Work [ id=8cb72bdb-2069-433c-b2a8-23dc7fff9617, tags={ com.duckduckgo.mobile.android.vpn.heartbeat.VpnServiceHeartbeatMonitorWorker, VpnServiceHeartbeatMonitorWorker } ]

[11-23 10:56:18.962 5848:5891 I/WM-WorkerWrapper]
Worker result SUCCESS for Work [ id=e1e05119-83db-4397-a6db-e6d37112b4a8, tags={ com.duckduckgo.sync.impl.pixels.SyncDailyReportingWorker, DAILY_REPORTING_SYNC_WORKER_TAG } ]

[11-23 10:56:20.514 5848:5892 I/WM-WorkerWrapper]
Worker result SUCCESS for Work [ id=94882200-06eb-4d3a-8eb7-6002c3b19ad7, tags={ com.duckduckgo.remote.messaging.impl.RemoteMessagingConfigDownloadWorker, REMOTE_MESSAGING_DOWNLOADER_WORKER_TAG } ]

[11-23 10:56:21.350 5848:5877 I/WM-WorkerWrapper]
Worker result SUCCESS for Work [ id=8b199974-ebcd-415d-9953-4ccfa4d86ed6, tags={ PRIVACY_CONFIG_DOWNLOADER_WORKER_TAG, com.duckduckgo.privacy.config.impl.workers.PrivacyConfigDownloadWorker } ]

[11-23 10:56:26.864 5848:5891 I/WM-WorkerWrapper]
Worker result SUCCESS for Work [ id=3e012b7d-3cbd-4dd0-bc88-906e399c8fc5, tags={ AppConfigurationWorker, com.duckduckgo.app.global.job.AppConfigurationWorker } ]
bemusementpark commented 2 weeks ago

Fix here: https://github.com/duckduckgo/Android/pull/4888