android debugger does not stop at breakpoints

2020-07-01 04:09发布

问题:

I am seeing debug statements in the console but the debugger does not stop on any breakpoints. I tried clearing all breakpoints and adding them back in. Not sure how this can happen but it is.

回答1:

Have you set the debuggable flag in the AndroidManifest? If you miss that, do so by adding android:debuggable="true" in the application tag. It should look like that in the end:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">


回答2:

If you use Android studio, click debug app instead of run app:



回答3:

Solution that worked for me:

  • Simply uninstall the app from the device (manually on the device) and try debugging again(!)


回答4:

According to this answer, Inside build.gradle for your app module, disable minifyEnable for your build variant and change it to false. Then, it should be:

minifyEnabled false

othewise you will see Line number not available in class xxxx when you hover over breakpoint markers and they will be looked with a cross on them



回答5:

For Android Studio:

  • Check if the option Mute Breakpoints is enabled by mistake. The icon looks like this:

For Eclipse:

  • Check if the option "Skip All Breakpoints" is enabled by mistake. It is the last icon on the following toolbar



回答6:

In my case, click the "Attach debugger to Android process"

And it will shows a window said "Choose Process" Select the device you are using, and select the project that you want to debug. And it works.

Sometimes the debugger need to re-attach to the devices when you open the debugger at the first time.



回答7:

Did you do "Debug As --> Android Application" instead of "Run As"?

Only if you do "Debug As", eclipse will stop at breakpoints.



回答8:

I had the same issue and resolved it by increasing the debugger timeout values. The emulator is slow as a dog on my Dev box and that is what prevented the debugger to catch and stop on breakpoints. I changed the timeout values respectively from 3000 to 10000 and 20000 to 60000 and all is fine now.

V.



回答9:

In my case, the app created a service with a different process with android:process=":service" in the AndroidManifest. So I was setting breakpoints in the service process code while the debugger is automatically attached to the main app process. Pretty stupid of me but it might help someone else.

You attach to the service process with Run > Attach Debugger To Android Process and choose the service process. You might need to add android.os.Debug.waitForDebugger(); to your service process code if you can't attach in time manually.

As far as I know, there's no way to automatically tell Android Studio or IntelliJ to attach to a different process before running.



回答10:

if you have added some build type in build.gradle check to have debuggable true

buildTypes {
    debug {
        debuggable true
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    } 

    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}