Logcat not showing errors from my Huawei P9 phone - android

I am using Android Studio 2.3 and my phone is Huawei P9 Lite. I noticed that my logcat does not show errors from my phone. For example if I have code that will crash because of NullPointerException and I run it on emulator I get exception in logcat (font color: red) and popup saying MyApplication stopped working, but if I run same that code on my phone, i just get crash popup and nothing in logcat. Info messages are displayed, but errors are not. What do I need to do in order to show error messages from my phone in logcat?

Huawei disables LogCat and any access to the logs of your phone. You should go to a hidden menu where you can enable these functions.
Open your Dialer app and enter the following code: *#*#2846579#*#*.
Enter the Background Settings page.
Click on “Log Settings”
Check all 3 options to enable full logging.
Ignore the "will affect performance" warning.
Reboot the phone.
This helped me, hope it will help to you, too.
Source: https://www.xda-developers.com/huawei-phones-disable-logcat-heres-how-to-restore-access/

I was facing the same issue and I solved it as below:
Select Tools -> Android -> then disable ADB integration and then re-enable it. Hope it'll help you

Don't close this popup as this will clear your logcat.
if nothing has appeared try the emphasized text
First, make sure you have chosen your mobile from here
and set the filter to verbose:

You can use debug .
You can use Log :
int ASSERT
Priority constant for the println method.
int DEBUG
Priority constant for the println method; use Log.d.
int ERROR
Priority constant for the println method; use Log.e.
int INFO
Priority constant for the println method; use Log.i.
int VERBOSE
Priority constant for the println method; use Log.v.
int WARN
Priority constant for the println method; use Log.w.
Example :
if i want to log to error log so i will use
Log.e("TAG","Message");
its will print in error log "Message"
and you can fillter it by the tag "Tag"

Related

Android : How to enable logging Log.v values which are by default disabled

I am a novice to the Android Studio and working on one group project.I am trying to log some variable values to logging.
When I use Log.e values are properly logged. While when I use Log.w or Log.v nothing gets printed. Here I am switching from logcat from error to verbose and to warning as I am using Log but still can't see anything printed.I previously used Toast but heard that using it might make my app slow and using Log.e everywhere is not a good practice.So how to print logs of lower priority?
I tried referring following resources but didn't find anything that could help me enabling logging for lower priority Logs, Just got the info that for some reason lower priority logs are disabled.
https://developer.android.com/reference/android/util/Log.html
Android Log.v(), Log.d(), Log.i(), Log.w(), Log.e() - When to use each one?
Thank you in advance.
All logs are always default enabled.
I think you are viewing logs in error view.
Check
You are viewing logs in Verbose
Your filter is set to selected app.
You have selected your app not other app. (where in below image no debuggable process is written)
Android Log.v(), Log.d(), Log.i(), Log.w(), Log.e() - When to use each one?
Log.e: This is for when bad stuff happens. Use this tag in places like inside a catch statement. You know that an error has occurred and therefore you're logging an error.
Log.w: Use this when you suspect something shady is going on. You may not be completely in full on error mode, but maybe you recovered from some unexpected behavior. Basically, use this to log stuff you didn't expect to happen but isn't necessarily an error. Kind of like a "hey, this happened, and it's weird, we should look into it."
Log.i: Use this to post useful information to the log. For example: that you have successfully connected to a server. Basically use it to report successes.
Log.d: Use this for debugging purposes. If you want to print out a bunch of messages so you can log the exact flow of your program, use this. If you want to keep a log of variable values, use this.
Log.v: Use this when you want to go absolutely nuts with your logging. If for some reason you've decided to log every little thing in a particular part of your app, use the Log.v tag.
Explanation by link Kurtis Nusbaum
Update:
If above things does not work then you are facing an device setting issue. Some mobiles have set default log level to DEBUG or ERROR. Allow logging from phone setting.
You can check if log is loggable by Log.isLoggable()
Check
Settings -> Accessibility -> Developer options -> advanced logging->set "Allow all"
or
Settings->Accessibility - > Developer Options -> Performance optimization -> Advanced logging -> set "Allow all"
or for other phone search in "developers options": option "logging" and set "all".
also you can use Log.wtf when your Log.d is not working.
try restarting android studio also

Android Studio 3.0 Logcat continuously showing messages and does not stop

When I start debugging my App in Android Studio 3.0 and open the Logcat, it displays so many messages and warnings, but the problem is, it never stops, even when the debugging is completed and the App is terminated, it still prints so many messages continuously.
Can anybody help???
Since you are not debugging or running any application on the device you have connected. Hence, the logcat is displaying the logs generated by all the apps in the device as well as the system logs. Which makes the log cat window go nuts.
What you can do is.
On the top right corner of the log cat window, there is a filter config combo box. Select or create a filter of your own to filter out relevant logs.
The filter could be created using any details, it could be a process ID (PID), the tag name e.g I/ActivityManager: where I stands for Info, V for Verbose, D for Debug and so on.
You can add filter in your Logcat, and mention all the classes whose logs you want to discard.
In the field LogTag (shown in the pic) define a regex like this ^(?!Class A | Class B|#). Here Class A and Class B are the classes whose logs you don't want to see.That's it.
If you see no debuggable application then change it to your app name. If that wont help change the log level to error. Last thing you can try is to filter the results. Good luck!

LogCat won't show my logs

I've searched for similar problems, but I didn't find anything useful - I'm working with eclipse, and I can't see my Logs.
The device is connected properly, the app runs and does what it's supposed to do, but I get no logs from it.
I get other logs messages from the device, not the ones that I print, e.g. Log.d("SMS", "hello"). On the other hand, if I use the statement System.out.println("hello"), I do see it, tagged as System.out.
I've tried to disconnect and reconnect the device, restart it, close and open eclipse, choose the device from Device window. It happens both with a 'real' device and an emulator. I've also tried to remove the filtering, but nothing helps - I still don't get the logs.
Okay, I've found the problem -
Apprently there are some illegal tags, and I've used one of them.
My app is spam SMS blocker, and I've used the tag SMS. If I change it to another tag (like SMSBlocker) it suddenly appears in the LogCat.
Check if your project is using proguard.
Basically proguard will remove all the debug logs and optimize your code while creating apk.
Try adding proguard.enabled=false in your project.properties
I think you should use TAG.
When you log from your android app, the first parameter is a TAG string. So if you set it up to a unique string (like your app name) then you can later filter by it in Eclipse.
Example : Log.e(TAG, "state error");

How to print a string to logcat for testing?

I know this question has been asked before, but I can't find a clear answer. I'm new to Android Studio and the logcat console confuses me. I have a string date and I want to keep 'track' of it in the console so I know what value it has.
I tried commands like Log.i and console.log, but they don't seem to work for me.
Where should I write my print line code?
Where can I see it when it gets printed?
Do I have to run the whole app (on the emulator, or on a device) to print the line to the console?
Where do I write my print line code ?
That is up to you.
Where can I see it when it gets printed ?
In LogCat:
You will get this from the Android view (usually docked on the bottom edge on the left side). Note that I have sometimes encountered a bug where the automatically-applied filter for your app (right-hand drop-down list, above the output) seems to result in nothing showing up in the output. You may need to remove the filters, then adjust the output based on log level.
You can also view LogCat at the command line via adb logcat and in the Android Device Monitor (Tools > Android > Android Device Monitor from the Android Studio main menu).
Do I have to run the hole app (emulator or via a device) to print the line to the console?
Yes.
Your use of Log.i is the correct way to write to Logcat. Here is the documentation for Log.
I typically use a tag that describes the stage I am in (setup, teardown, UI update, etc), and I will usually log any action that can trigger an exception.
To view the Logcat, there should be a window for that in Android Studio. When the windows is not visible, you can access it from a tab in the lower left corner of the screen:
if you want to show logs in error
you can write
Log.e("Your Tag for identy", "Your String ");
if you want to show logs in info
you can write
Log.i("Your Tag for identy", "Your String ");

DDMS Not showing my logs

I'm having an issue with DDMS.
System logs are appearing fine, but my own logs aren't showing up.
I'm trying to view the logs in ddms.exe.
I've tried restarting adb, stop/start adb, restart ddms, restart emulator, recreate avd.
Nothing has had an effect. I've tested this with two different apps.
Any ideas?
EDIT same issue in logcat.
No filters selected
I've restarted the computer
As i remember you have to make you app debuggable ("android:debuggable=true") in your manifest file. Or you can find your app in DDMS but can't get access for your own logs?
can you try the command:
> adb logcat -s "TAG"
on a terminal/cmd line ?
here "TAG" is the name of the tag which you are giving in your Log
I failed to mention that i'm using a tool called Kony. It is a "write once deploy everywhere" mobile development environment.
When the app is being compiled in release mode (which I was unaware of) all print statements are removed.
Had this not been the case, some or all of the previous suggestions would have worked, i'm sure.
Adding to above.
It is true that the value we are trying to print will not be logged to the console but it is not strictly removal of print statements. Kony.print get executed .
This observation can be checked by building in release mode and trying to print and undefined value, you will get type error thrown.

Categories

Resources