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:

enter image description here

  1. To start debugging from the beginning, I run the app in Debug mode from the start, using this button in your toolbar:

enter image description here!

  1. To attach the debugger to the app when it's already running as @scottyab mentioned, I click the Attach Debugger button in your toolbar:

enter image description here

  1. To run the release version of my app in debug mode, I've started changing my strings in the Debug version of strings.xml in the file path myApp/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).

enter image description here

Select Android. Then Run.

It will connect to your device.

And dont forget to change build variant

enter image description here