Code Monkey home page Code Monkey logo

logfox's Introduction

LogFox

Yet another LogCat reader for Android

license release downloads

Features

  • Shizuku, Root & ADB support
  • Record logs and export to ZIP with device info
  • Observe and get notifications about Java/JNI crashes and ANRs
  • Powerful filters for logs
  • Accessibility support
  • Material You design

Download

Get it on F-Droid

Screenshots

License

Copyright (C) 2022-2024 Maksim Zoteev

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

logfox's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

logfox's Issues

[Bug] Changing cache sessions switch crashes

  • System: HarmonyOS 3.0(Android 10)
  • Version: The latest version on the master with #113
FATAL EXCEPTION: DefaultDispatcher-worker-10
Process: com.f0x1d.logfox.debug, PID: 8562
android.os.DeadObjectException
	at android.os.BinderProxy.transactNative(Native Method)
	at android.os.BinderProxy.transact(BinderProxy.java:535)
	at com.f0x1d.logfox.IUserService$Stub$Proxy.processOutput(IUserService.java:246)
	at com.f0x1d.logfox.utils.terminal.ShizukuTerminal.execute(ShizukuTerminal.kt:114)
	at com.f0x1d.logfox.repository.logging.LoggingRepository$readLogs$2.invokeSuspend(LoggingRepository.kt:144)
	at com.f0x1d.logfox.repository.logging.LoggingRepository$readLogs$2.invoke(Unknown Source:8)
	at com.f0x1d.logfox.repository.logging.LoggingRepository$readLogs$2.invoke(Unknown Source:4)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
	at com.f0x1d.logfox.repository.logging.LoggingRepository.readLogs(LoggingRepository.kt:132)
	at com.f0x1d.logfox.repository.logging.LoggingRepository.access$readLogs(LoggingRepository.kt:34)
	at com.f0x1d.logfox.repository.logging.LoggingRepository$startLoggingIfNot$2.invokeSuspend(LoggingRepository.kt:86)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:100)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@6ae6ff7, Dispatchers.IO]

Adapt to Huawei old system

Screenshot_20231211-201428.jpg

Screenshot_20231211-201433.jpg

Screenshot_20231211-202704.jpg

  1. Huawei's notification icons allow for colorful icons, so they will not be automatically colored like AOSP
    • Solution: Copy a dedicated icon file for notifications and manually fill the file with colors
  2. Huawei's navigation bar is gray by default, not white, and it is the same behavior in new EMUI now.
    • Solution: Remove the navigation bar background on Huawei devices, regardless of whether the device is Android 8.1+ or use a darker background instead (not recommended as it may not look good)

This is your app, you can decide to fix this ๐Ÿ’ฉ bug on huawei or ignore it. I would greatly appreciate it if you could fix this bug. I can also provide you with some help.

Save crashes from previous logging

Could be helpful if the app crash causes bootloop or something, maybe even add an option in settings to clear all crashes after 7 days from when they were created

Log that precedes the app launch

Is it possible to have the log that precedes the moment the app is launched, as in Logcat Reader (GitHub, F-droid)?

Note that Logcat Reader's recording service with the mandatory notification is started when the app is launched, and it is not running before; I did "Force stop" in the Android settings, to be sure.

[FR] Black theme or fully dynamic BG color like in earlier versions (โ‰ค1.5.2)

Hello, please, add an option to enable Black theme in LogFox.

Alternatively, if possible, you can make Monet theming like it was in the previous version (version 1.5.2 and earlier), i.e. fully dynamic โ€“ due to questionable changes in material3 compose, background color is no longer dynamic (you can't make it darker/lighter/completely black with the use of apps like "Repainter" anymore), some app developers ignore this change, still allowing user to fully customize the Monet theme in their app.

Here's screenshots comparing LogFox v1.5.2 and v1.5.3 with "Repainter" enabled:
Screenshot_20231222-152031_LogFox~3


Screenshot_20231222-152406_LogFox~2

Anyway, good luck to you and thank you for your app

Ability to choose logs level

Please add an option to show logs by its level: debug, error, info, verbose e.t.c like in MatLog. Right now it shows all logs together and sometimes there is a need to see logs only certain level without all this mess

[optimization] Splitting partial fragments into activities

Splitting fragments to different activities(especially pages without navigation bars) has the following advantages:

  1. Animation Follow System, and avoid the non-animated disappearance of rail or navigation view
  2. Remove content protection from navigation bar only for MainActivity, because it is better to set the transparent navigation bar in the portrait home screen. In the original situation, switching to a page without a navigation bar requires manually setting the navigation bar color, as in my pr.
    Screenshot_20231005_185443_com.f0x1d.logfox.jpg

Search by PID

Searching by PID seems not working. Also the search is case sensitive (which makes searching more difficult). Overall improvement in the searching function can be made.

[Request] Block specific crash notifications

Problem

This happens on my phone

  • System updates cause problems with certain system processes, causing crash notifications to pop up every tens of seconds.
  • Some software will trigger a crash notification when opened (for example, opening Baidu Tieba will trigger a zygote crash)

These crashes bring hundreds of notifications every day, and there is no way to block them, but I donโ€™t want to close LogFox either.

Expected Solution

Add a block list to block some of the crash record notifications

LogFox not displaying new logs

Environment: LogFox 1.5.6 running on a 905X3 television box with a custom ROM based on Android 9.

Started LogFox, and searched for a specific application that kept crashing. Eventually, I wanted to look at other things, I cleared the logs, but every time I go back into LogFox, I see two of the lines from two days ago, literally repeated (same timestamps) for hundreds of pages. I have tried force stopping the app, stopping the service, restaring logging, and everything else I can think of, but no matter what I try, when I start LogFox, I see nothing but those same two line from two days ago repeated for hundreds of pages.

The log for LogFox has nothing interesting (literally just "Start proc," but I do have a screenshot (although you can't see the incredibly small scroll bar on the right in it).

logfox

Any suggestions? Thank you in advance.

As a side request, could you add "Save" to "Copy," "Share," and "Zip" in the page that displays crashes?

java.util.concurrent.TimeoutException

OS:Android 11 API 30
Version:1.5.7
FATAL EXCEPTION: FinalizerWatchdogDaemon
Process: com.f0x1d.logfox, PID: 28224
java.util.concurrent.TimeoutException: com.android.internal.os.BinderInternal$GcWatcher.finalize() timed out after 10 seconds
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:442)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:273)
at java.lang.Daemons$Daemon.run(Daemons.java:139)
at java.lang.Thread.run(Thread.java:923)

ArrayIndexOutOfBoundsException, a requent and difficult to reproduce bug

java.lang.ArrayIndexOutOfBoundsException: length=15000; index=-1
	at java.util.ArrayList.get(ArrayList.java:439)
	at java.util.Collections$UnmodifiableList.get(Collections.java:1356)
	at com.f0x1d.logfox.ui.viewholder.base.BaseViewHolder.getCurrentItem(BaseViewHolder.kt:11)
	at com.f0x1d.logfox.ui.viewholder.LogViewHolder.expandOrCollapseItem(LogViewHolder.kt:111)
	at com.f0x1d.logfox.ui.viewholder.LogViewHolder._init_$lambda$1(LogViewHolder.kt:55)
	at com.f0x1d.logfox.ui.viewholder.LogViewHolder.$r8$lambda$wpliB5BmvfRQPqhmRmCq5TmEJzs(Unknown Source:0)
	at com.f0x1d.logfox.ui.viewholder.LogViewHolder$$ExternalSyntheticLambda1.onClick(Unknown Source:2)
	at android.view.View.performClick(View.java:7575)
	at android.view.View.performClickInternal(View.java:7548)
	at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
	at android.view.View$PerformClick.run(View.java:29848)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:211)
	at android.os.Looper.loop(Looper.java:300)
	at android.app.ActivityThread.main(ActivityThread.java:8294)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)

I don't know what I did, and I can't reproduce it either.

I have checked the source code and it is possible that the RecyclerView. getBindingAdapterPosition() method returned NO_POSITION

The following screenshot is an exception monitoring from MIUI.
Screenshot_2023-10-09-05-17-52-173_com.miui.thirdappassistant.jpg

Refactoring Backgrounds, menus for LogsAdapter and LogViewHolder

Backgrounds

Delete these code
image
image

Because this code is dynamically generated, it may result in reduced readability.

My recommended way to do this is to write the background to the drawable resource folder and then get it in the code.

Menus

Delete these code.
image

I recommend using context menu because it eliminates the need to generate a lot of PopupMenu and makes the menu follow the user's finger!

The minimum Android version of the software is 24, so the context menu can be displayed normally as PopupMenu style

Ripple

And add a ripple effect to the background. This requires refactoring the background implementation.

[Bug] Double clicking on the recording item will cause it to crash

petal_20240123_183005.mp4
FATAL EXCEPTION: main
Process: com.f0x1d.logfox, PID: 31710
java.lang.IllegalArgumentException: Navigation action/destination com.f0x1d.logfox:id/action_recordingsFragment_to_recordingBottomSheet cannot be found from the current destination b(com.f0x1d.logfox:id/recordingBottomSheet) label=RecordingBottomSheet
	at f1.v.l(SourceFile:131)
	at f1.v.n(SourceFile:1)
	at y3.d.n(SourceFile:292)
	at h4.i.onClick(SourceFile:54)
	at android.view.View.performClick(View.java:7322)
	at android.view.View.performClickInternal(View.java:7296)
	at android.view.View.access$3600(View.java:839)
	at android.view.View$PerformClick.run(View.java:28319)
	at android.os.Handler.handleCallback(Handler.java:900)
	at android.os.Handler.dispatchMessage(Handler.java:103)
	at android.os.Looper.loop(Looper.java:219)
	at android.app.ActivityThread.main(ActivityThread.java:8673)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)

Hi Feature request

Im a software tester ,i need a option to hide build fingerprints in log for privacy,it helps me to feedback devs faster. i mentioned build fingerprints as phone software informations.

Don't show notification for selected apps

I have debloated my phone so this one ad service keep crashing and Logfox shows me notification throughout the day. When I plug charger, switch apps & play music etc, i get dozen of notifications every day. This adservice doesn't really have any app as i can't get into app info page through logfox or other apps. The OEM somehow baked it into the system. I can't completely disable the crash notification for obvious reasons. Is it possible to implement something like this where we can select service which we don't want to see notification of?

IMG_20240330_175302

Crash : java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1482336 bytes

Reproduce :

  • Select all logs (10000 items)
  • In the menu, choose "copy"

Device :

  • Samsung Galaxy A52s / LineageOS 21.0 / Android 14
FATAL EXCEPTION: main
Process: com.f0x1d.logfox, PID: 3857
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1482336 bytes
at android.content.ClipboardManager.setPrimaryClip(ClipboardManager.java:189)
at f3.a.d(SourceFile:1)
at e4.d.a(SourceFile:155)
at e4.d.k(SourceFile:28)
at i3.a.onMenuItemClick(SourceFile:13)
at k.o.q(SourceFile:19)
at k.x.onItemClick(SourceFile:41)
at android.widget.AdapterView.performItemClick(AdapterView.java:330)
at android.widget.AbsListView.performItemClick(AbsListView.java:1265)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3278)
at android.widget.AbsListView$3.run(AbsListView.java:4244)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8248)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by: android.os.TransactionTooLargeException: data parcel size 1482336 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:584)
at android.content.IClipboard$Stub$Proxy.setPrimaryClip(IClipboard.java:389)
at android.content.ClipboardManager.setPrimaryClip(ClipboardManager.java:182)
... 18 more

Add donation link

Hello!

I'd like to buy the code owners a coffee!
Please setup a donation link :)

Make notification persistent

Currently you can easily accidently close the notification by swiping it, please make it so that you need to click on notification, and then on exit button to close the notification
Thanks.

Export current logs

Add an option to export all logs that are in logfox tab(with filters) instead of having to record them again
Maybe press on three dots and export option there

[FR] Disable automatic scrolling of ScrollView due to changes in focus

SVID_20240219_080243_1.mp4

Translated from Baidu Translate

In Android, if textIsSelectable is set to TextView, it will automatically enable focusInTouchMode. (Although this may not be entirely reasonable, the fact is that it is.)

And in Android, if a View gains focus, Android will view it to display it fully on the screen.

This creates a situation in the video where when long pressing the selection button, ScrollView will immediately scroll to the position of TextView, causing a decrease in user experience (selecting multiple unrelated lines of text and potentially confusing the user).

In traditional android.widget.ScrollView, we only need to set 'setRevealOnFocusHint' to TextView, but this value does not work when using NestedScrollView because NestedScrollView was not evaluated during implementation.

So we need to use other methods. That is, after inheriting NestedView, rewrite the computeScrollDeltaToGetChildRectOnScreen method and return 0. I have tested in another project and it will work.

Translated from ERNIE Bot

In Android, when the textIsSelectable property is enabled for a TextView, the focusInTouchMode is automatically activated. This may seem counterintuitive, but it's the actual behavior.

Additionally, in Android, when a View gains focus, the system assumes it needs to be fully visible on the screen.

This can lead to the issue described in the video, where upon long-pressing a TextView, the ScrollView immediately scrolls to the position of the TextView, potentially degrading the user experience (as multiple lines of text may be unintentionally selected during the long-press, leading to confusion).

In the traditional android.widget.ScrollView, one workaround for this issue is to set the setRevealOnFocusHint property of the TextView to true. However, when using NestedScrollView, this workaround does not work as NestedScrollView does not take this property into account during its implementation.

Therefore, an alternative approach is necessary. One such approach is to inherit from NestedScrollView and override the computeScrollDeltaToGetChildRectOnScreen method, returning 0. I have tested this approach in another project, and it resolves the issue.

Related links

https://blog.csdn.net/ZYJWR/article/details/108386309

How about changing the icon of the log and crashs.

I suggest changing the log icon in the navigation bar and notification bar to logfox icons, and changing the crash icon to bug. I think the meaning of bug is closer to crashes.

Moreover, the logcat icon on Android Studio is the same as the cat icon, so it is more reasonable to set the log icon to the logfox icon.

Feature request: add ability to record and view log files

I hope it's understandable. Since, well, long enough I used Matlog Libre. I really like your app, but it really lacks the possibility to save files and view them later, or even open log files with file picker (something even matlog lacks). Could you add this feature?

On a side note, would you consider adding amoled theme or should I open another issue for that?

Crash on Navigation action/destination

Steps to reproduce:

  1. Open LogFox > click on Settings
  2. Click on any option (e.g UI)
  3. Again just click on "Settings"
  4. Click on back from device navigation bar
  5. Again click on any option (e.g UI)
  6. See error

Logs:

FATAL EXCEPTION: main
Process: com.f0x1d.logfox, PID: 8000
java.lang.IllegalArgumentException: Navigation action/destination com.f0x1d.logfox:id/action_settingsMenuFragment_to_settingsUIFragment cannot be found from the current destination g(com.f0x1d.logfox:id/settingsCrashesFragment) label=SettingsCrashesFragment class=com.f0x1d.logfox.ui.fragment.settings.SettingsCrashesFragment
	at z0.y.j(SourceFile:169)
	at r3.g.f(SourceFile:91)
	at androidx.preference.Preference.s(SourceFile:20)
	at e.b.onClick(SourceFile:82)
	at android.view.View.performClick(View.java:7467)
	at android.view.View.performClickInternal(View.java:7444)
	at android.view.View.access$3700(View.java:840)
	at android.view.View$PerformClick.run(View.java:28831)
	at android.os.Handler.handleCallback(Handler.java:978)
	at android.os.Handler.dispatchMessage(Handler.java:104)
	at android.os.Looper.loopOnce(Looper.java:238)
	at android.os.Looper.loop(Looper.java:357)
	at android.app.ActivityThread.main(ActivityThread.java:8090)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)

Device details:
App version: 1.3.9
Android: 12
Model: moto g71 5G

Ability to filter logs for single app

Im frequently running into a problem where im trying to view logs for a specific app on my phone but LogFox doesn't really have a neat way of doing it.

What I'm thinking is add an option to the filter that displays all apps including system (toggleable) and the user can select it to show only logs for that app

[Feature Request] Make the selection experience like ActionMode

The details are as follows:

  1. When the user is making a selection, the toolbar displays a back button and the selected quantity, indicating that the user is in selection mode.
  2. Click the return button to cancel the selection instead of exiting directly.
  3. When not selected, hide or disable the two menus related to selection in the toolbar

This is the current behavior:
Screenshot_20231014_141107_com.f0x1d.logfox.jpg
Screenshot_20231014_141115_com.f0x1d.logfox.jpg

This is the behavior of Material Files:
Screenshot_20231014_141126_me.zhanghai.android.files.jpg

How to save since the boot

Hi, I'm using Las version 1.5.4 an the only option to save the log is by record, but I need to save full log, since boot, it is possible? How to save the info on the main window?
Screenshot_20240130-213753_LogFox

Shizuku support

Is it possible to add Shizuku support? I'm not sure if it provides the ability to read the logcat, but what if?

[FR] Swipe left/right to switch tab

Hi, it would be awesome, if a User could switch menu tabs through swiping to the left/right side. As an example I have the vertical navigation through folders from Telegram in mind.

Thank you!!

Hey,

Wow, thank you, really, this is the best Logcat viewer ever!
I always wondered why none of them showed package names.
Really awesome, and even showing crashes ๐Ÿ‘๐Ÿ‘

Regards
Hyper

[F] Indication that some filter has applied

Some kind of indication when filter is applied will be great, I think.
Once, I opened LogFox the list was empty and I assumed it could be root permission. So, I tried,
denying/grant su access, "Restart service", force stop. Until I figured out it had a filter that I had added last time I used.

Thanks :)

Delete crashes if there are too many

Sometimes an app crashes constantly and then when there are too many it causes the phone to restart, please do that it will warn the user and deleted all crashes except one so that the restart won't happen.
Sorry if it's too much and tnx anyway

Suggestions for improvement

Hello. Wanted to suggest some improvements:

  1. The current dark theme is more like an AMOLED theme. Is it possible to make the background less black?
Item 1

Screenshot_1

  1. Maybe add a language selection in the application? It always depends on your system, which is sometimes inconvenient.
Item 2

Screenshot_2

  1. Do you think it's worth adding the "AndroidRuntime" tag filter on the first launch of the application? This is a very useful filter in case of debugging. And beginners can quickly use it.
Item 3

Screenshot_3

App crashing during navigation

The app is crashing for me whenever i tap on "crashes" button in navigation bar. It was working fine a few days ago. It just started to happen randomly. There isn't any problem when i tap on a current crash directly from notification to access it.

Here's the log:

FATAL EXCEPTION: main
Process: com.f0x1d.logfox, PID: 12943
android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=18, totalRows=19
at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)
at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:1003)
at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:838)
at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:153)
at android.database.sqlite.SQLiteCursor.onMove(SQLiteCursor.java:123)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:255)
at android.database.AbstractCursor.moveToNext(AbstractCursor.java:287)
at w2.c.a(SourceFile:555)
at w2.c.call(SourceFile:182)
at j1.c.n(SourceFile:85)
at b7.a.m(SourceFile:1)
at q7.i0.run(SourceFile:1)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Suppressed: v7.g: [p1{Cancelling}@b13b5ac, Dispatchers.Main.immediate]

Group by app

Could we have a button to Google crashes grouped by application?

Thank you very much!

E.g

Screenshot_20231003-025157.png

Screenshot_20231003-025235.png

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.