Android Studio heap dump is empty - android-studio

Android Studio 4.0.2 is exporting empty hprof files from memory that is not empty. The profiler shows memory correctly, but I would like to use MAT to analyze the heap because Android Studio does not give the information in an easy to parse way.
Is there a way to fix this?

I know this is an older post, but have you tried using ADB to collect the dumpheap of your application?
adb shell ps | grep app-name
adb shell am dumpheap pid /data/local/tmp/android.hprof
adb pull /data/local/tmp/android.hprof
You will then need to use the HPROF-Converter to view in Android Studio
https://stuff.mit.edu/afs/sipb/project/android/docs/tools/help/hprof-conv.html

Related

Gradle daemon is going into infinity loop after upgrading android studio to 4.2.1

This is the image of gradle daemon
This is the version of the android studio
and I have tried to change heap size in the gradle properties but it is not working.
I am really stuck on this issue because any project is not building and even when I was trying to build new project it is also not working.
I update to 4.2.1 on my Mac today, when I open up a project it starts an infinity loop of android studio windows of that project, had to hard restart my Mac.
The only way I was able to fix it, was by going back to 4.1.3.
For solving this problem in windows run this command in cmd.
setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true
and this will work definetly.

How do I run/build my app from Android Studio 4.1 64 bit Windows 10 laptop to Android 3.6 42 bit Windows 7 laptop

I've run into a problem. My previous laptop Acer Aspire R7 Windows 10 64 bit laptop crashed. This was the only laptop I had until I was given another one, but it's a Windows 7 32 bit Samsung. Anyway I was able to install an older version of Android Studio, but I've now run into problems. When I try to open my app that I created from the previous laptop it keeps telling me
"Gradle project sync failed". Basic functionality(e.g editing and debugging) will not work properly" and it says "Kotlin not configured".
There's nothing wrong with my code, so that's all I can say is the problem. I don't know what to do now, because this is app was how I made my income and now I can't work on it.
UPDATE
So I've made a bit more progress now, but i still have problems.
This is what my log shows when I try to clean or rebuild my project
Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the User Manual chapter on the daemon at https://docs.gradle.org/6.1.1/userguide/gradle_daemon.html
Process command line: C:\Users\Rodney SA\Downloads\android-studio-ide-192.6241897-windows32\android-studio\jre\bin\java.exe -Xmx2048m -Dfile.encoding=windows-1252 -Duser.country=US -Duser.language=en -Duser.variant -cp C:\Users\Rodney SA\.gradle\wrapper\dists\gradle-6.1.1-all\cfmwm155h49vnt3hynmlrsdst\gradle-6.1.1\lib\gradle-launcher-6.1.1.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 6.1.1
Please read the following process output to find out more:
-----------------------
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
-----------------------
Check the JVM arguments defined for the gradle process in:
- gradle.properties in project root directory
“Gradle sync failed” is a very common error in Android studio.
It happens generally when your project is lacking some files which need to be downloaded.
First go to File>Setting>search Gradle keyword and uncheck offline work
Make sure you have enough high speed data
Goto Tools>Android>Sync Projects Gradle Files
It will automatically download the necessary file.
Android studio is a very data consuming IDE you will have to face frequent updates.

Android Studio 2.3 Windows: AVDManager and SDkManager UI are gone?

I've just downloaded the latest version of Android Studio (23.2) and apparently the AVD Manager and SDK Manager applications aren't available anymore:
They used to be in \Android\sdk . But now in the \Android\sdk\tools\bin folder there are multiple .bat files:
However neither by running the files as administrator or with the command line starts the graphical interface, they're just command line tools.
Were these apps removed in the last version? Do i need to handle the SDK and Virtual Devices through the command line now?
After some research, it seems that the old apps aren't available anymore. Instead you should use the manager inside Android Studio:
And the same should be done with the AVD Manager (Tools > Android > AVD Manager).
As a i work with Cordova, I did not think of it before. I hope that this help the people that have the same problem that i had.
If you, just like me, don't want to use Android Studio, you have two alternatives:
Use this Windows-only GUI some 3rd-party developers made.
Deal with the CLI.
To install stuff via the CLI the easiest way I found was:
./sdkmanager --update
./sdkmanager --list > log.txt
(Find the packages you want reading log.txt)
./sdkmanager --install "package_name_in_quotes"
These are Linux instructions, but the only real difference on Windows is that you'll use sdkmanager.bat instead of ./sdkmanager.
Don't forget to actually go to the directory before running these commands, in my case that would be cd /opt/android/tools/bin.

Android Studio 2.1.2 'Dump Java Heap' Not working (Mac OS El Capitan)

I am trying to get an .hprof file using the 'dump java heap' button in Android Studio memory monitor, but for some reason no .hprof file is generated. Does anybody know why? Allocation Tracking works okay.
It does not work for me either, on Android Studio v2.3.3 on Linux. It is a silent failure with no log or error that I can find. This workaround works on my system:
adb [-d|-e] shell am dumpheap <package-name> /sdcard/heapdump.nhprof
adb [-d|-e] pull /sdcard/heapdump.nhprof
<path-to-AndroidSDK>/platform-tools/hprof-conv heapdump.nhprof heapdump.hprof
And then you can drag the heapdump.hprof file onto Android Studio and it will analyze and display it. Choose -d or -e depending whether you are using a USB connected device, or the emulator. Replace with your package name (usually starts with com. or org. )
Update to the newest Android Studio and macOS version. The memory dump works for me for Android Studio 2.3.2 and macOS Sierra 10.12.6.
You can try to increase memory for JVM by set your Android Studio configuration.
Add following settings
-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops
to
/Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

Error while waiting for device: Time out after 300seconds waiting for emulator to come online

I have been trying to use android studio 2.0 emulator but I can not run my App on the Emulator. When I Run my App it shows the emulator with following details:
Hax is Enabled
Hax ram_size 0x800000000
HAx is working and emulator
runs in fast virt mode.
console on port 5554,
ADB on port 5555
After that it takes to next TAB Launching app and shows
Waiting for the device to Come online
After that it shows error:
Error while waiting for device: Time out after 300seconds waiting for emulator to come online.
What I have tried so far.
Installed fresh android studio 2.0 with all update to date SDK
Tired to increase Emulator Memory.
Installed android studio 2.1 Beta with latest SDK
Discussed this issue on Google.
What's the solution?
I haven't found any solution yet. I opened new issue on 4th may 2016 because it is known bug in previous versions. Please report on the following link if you have same issue.
https://code.google.com/p/android/issues/detail?id=209095
The solution for me was setting the Graphics option on the Android Virtual Device to Software instead of Automatic or Hardware.
I believe this was the solution because I am working on a windows machine that did not have a dedicated graphics card.
You might have forwarding enabled on adb. You can try this: Quit Android studio and launch terminal. Run these commands:
adb kill-server
adb forward --remove-all
adb start-server
Now you can launch Android Studio and try again.
Also something that can go wrong: Make sure you exit Docker for Mac (possibly all other kind of docker installations as well).
My problem went away after I shutdowned VirtualBox on my machine.
One thing I know is that Linux KVM can't get along with VirtualBox well.
I found a workaround even though I am not sure why this is happening.
Go to Menu->Tools->Android and uncheck the option Enable ADB Integration
Run the application. Now the emulator will be launched, but app will not run. Once the emulator is fully launched, check the Enable ADB Integration option and re-run the app. Now the app will be launched in the already running emulator.
Go to Device Manager (Tools -> Device Manager)
Wipe the data of your device and try starting it again.
Go to Android Studio Command Line, and follow these steps:
__> cd /Users/your_root_name/.android/avd
__> ls
__> rm -r Nexus_5X_Edited_API_17.avd There are two avd files.
Rerun the app.
You could try :
run the emulator from the console manually and see whether adb can connect("see") it from android studio. Does it run at all?
delete avd , recreate a new one for testing, always a good idea in 2.0. lot's of stuff is changing ( instant run etc.)
what does adb say from console ? adb kill-server , adb start-server, start an emulator, then adb devices does it list your emulator ?
try to change this solved my issue, you may other graphics options, and change to a lower resolution model
Upgrade to the latest SDK, for the android emulator:
use 512MB RAM
256MB heap
You can leave the default disk space.
I had the same problem. I'm using Android Studio 2.3 and Debian 9.1 Stretch 64 bits.
In my case, the problem was in default settings established in graphics aceleration configuration.
To solve the problem I opened the AVD Manager, then I selected the device and I opened config file (config.ini) selecting "Show on disk" option whitin "Actions" column. Within the file, I changed the value setted in hw.gpu.mode variable from mesa to swiftshader. After saved the changes, the emulator started without any problems.
More options availables could be found on this link.
These are the steps I took (I'm on Linux).
Switched to Software rendering (works but is too slow)
Tried running on commanline and an error displayed.
Forced emulator to use the system graphic drivers.
First, as #jlars62 suggested, I tried using Switching the Graphics to "Software" and this DID work. However, the performance is far to slow so I dug a little deeper.
Then I tried running the device from the console, as #CaptainCrunch suggestion. (My device was created in Android Studio; emulator in the Sdk may be in a different place on your system)
$ ~/Android/Sdk/emulator/emulator -avd Nexus_6_Edited_768Mb_API_23
For me this produced the following error:
libGL error: unable to load driver: i965_dri.so
libGL error: driver
pointer missing libGL error: failed to load driver: i965
...
Which I tracked down (on ArchLinux) to mean it's using the wrong graphic drivers (Android Sdk comes with it's own). You can force the system ones on the commandline with -use-system-libs:
$ ~/Android/Sdk/emulator/emulator -avd Nexus_6_Edited_768Mb_API_23 -use-system-libs
To force Android Studio to do this you can intercept the call to "emulator" like so (See Mike42) :
$ cd ~/Android/Sdk/tools/
$ mv emulator emulator.0
$ touch emulator
$ chmod +x emulator
In the new emulator file add this:
#!/bin/sh
set -ex
$0.0 $# -use-system-libs
I experienced a similar issue with android studio 2.2. Re-installing a new system image didnt resolve for me. Then found this solution on this link.
unchecking the Enable ADB Integration option and checking it back seem to resolve it for me. I hope this helps someone out there.
Android API Version for application and device should match. Check if minSdkVersion and targetSdkVersion in Gradle Scripts - build.gradle (Module: app) correspond device API.
Also low versions (e.g. API 15) result in ide-emulator link failure, inspite of applicatrion and device versions match.
I had the same problem. I removed virtual device and run app on my phone - worked well.
To remove virtual device: Click icon "AVD Manager" in Android Studio, select virtual device and in context menu click "Delete".
Then turn on on the phone "Developer mode". Connect phone via USB to the laptop.
Restarting ADB server works for me, but no need to go for it from command line.
Ctrl + Maj + A -> Troubleshoot Device Connections -> Next -> Next -> Restart ADB Server
Sadly none of the solutions worked for me! I solved my problem by uninstalling existing APK from my phone and it all started working perfectly!
This started happening after I've updated android studio to latest version.
I almost tested all solutions in this topic and other pages. Finally after lots of searching I found the issue!
I had to enable Hyper-V on my system (If your system does not support Hyper-V you need to install HAXM instead).
In this link you can read about enabling Hyper-V and HAXM: https://learn.microsoft.com/en-us/xamarin/android/get-started/installation/android-emulator/hardware-acceleration?pivots=windows
If you install HAXM and still doesn't work go to this link below and install Hyper-V.
Next, restart your computer.
If It doesn't work again remove the emulator and reinstall again with a high API.
https://learn.microsoft.com/en-us/xamarin/android/get-started/installation/android-emulator/hardware-acceleration?pivots=windows
I experienced a similar issue, i fixed it by deleting the Android emulator then created a new one with a higher API level.
In my case I've selected API-30
To fix it I went to Tools > SDK Manager > SDK Tools and updated Android SDK Build-Tools 31
Somebody said they needed to do a cold boot afterword
I encountered the same problem, when I tried to run it from the terminal by following command
~/Documents/development/android/SDK/emulator/emulator -avd Resizable_Edited_API_31
I encountered the following error
qemu-system-x86_64: -chardev socket,port=36201,host=::1,nowait,nodelay,ipv6,id=modem: address resolution failed for ::1:36201: Name or service not known
^C^X^Z
And I realized that I had disabled ipv6 in the system, after I activated it, avd ran for me.
Usually, deleting the current emulator that doesn't work anymore and creating it again will solve the issue. I've had it 5 minutes ago and that's how I solved it.
I have faced the same issue you have mentioned and could solve it by just deleting the current avd and creating a new one.It's working perfectly well now.
This error is gone for me by remove the AVD and create a new one.
after some compile and clean, the error was gone away.

Resources