Unable to open debugger port : java.net.SocketException "Socket closed"
I finally understand why I was getting that error so I'm going to explain how I Debug
now. Note that I use Gradle
(build multiple apk's using the same code), which might influence some how you use the third part of this answer.
For these to work, in the dropdown next to the debug (icon in #1) and run buttons in the top toolbar, you have to have the one selected with the following icon next to it because that's the name of the root directory of your app where all your code lives:
- To start debugging from the beginning, I run the app in
Debug
mode from the start, using this button in your toolbar:
- To attach the debugger to the app when it's already running as @scottyab mentioned, I click the
Attach Debugger
button in your toolbar:
- To run the release version of my app in debug mode, I've started changing my strings in the
Debug
version ofstrings.xml
in the file pathmyApp/src/appNameDebug(verses appNameRelease)/res/values/strings.xml
, more easily seen here, on the bottom half. When I say change, I really mean that I have two versions of all the strings (3 in my case) necessary to change from using the debug server to using the release server. It might not be completely kosher, but it takes about 5 seconds to go the file, and hold down Cmd+/ and uncomment and comment all of the appropriate lines.
My Release
version is just there for when I'm ready to build an apk for release.
Doing things in this way has eliminated that error popping up anymore. I think the Release
version is just not made for debugging, and I haven't found an easy way to turn the debug flags on when in Release
mode.
Just Click the button (left side the RUN button).
Select Android. Then Run.
It will connect to your device.
And dont forget to change build variant