无法在 Android Studio 中调试应用程序

我在 Android Studio 中开发了一个应用程序,现在尝试通过 adb 进行调试。当我点击单词 Android 和底部栏上的标志时,logcat 会出现并识别我的设备。然后我看到了这个:

screenshot

我需要对我的应用程序做什么来使它“可调试”?

仅供参考,我之前在 Eclipse 中开发这个应用程序,adb 工作得很好。

188652 次浏览

There is a Debug icon on the toolbar. It looks like a little "bug" and is located right next to the Run icon (which looks like a play button). Try launching the application with that.

Click here to debug

Edit: The following is deprecated when using Android Studio with Gradle.

There is also a debug flag in the AndroidManifest.xml file. It is located under the application tag, and should be set to "true", as follows:

<application android:debuggable="true">
</application>

One case where you can be unable to debug an application in Android Studio is when you have the "release" build variant selected. Happened to me - Gradle builds a release version of the app (which is not debuggable) and then Android Studio fails at trying to connect the debugger.

I also randomly had this problem even after debugging many times in Android Studio. One day the debugger just wouldn't attach. I just had to quit Android Studio and reopen it and the debugger started working again.

This occasionally happens to me and I have yet to figure out why. None of the already posted solutions have worked for me. The only thing that works for me is to:

  1. Uninstall application from device.
  2. Clean Project. "Build -> Clean Project."
  3. Rebuild and install.

This worked for me:

  1. Close Android Studio.
  2. Open the shell, and write:

    adb kill-server

    adb start-server

Another thing to be careful of (I did this so I know, duh). Be sure not to enable Proguard for debug!

I had same problem and I tried almost all kinds of solutions via Google. But I couldn't solve it. Finally, I found the solution. This is Android Studio Bug.

Do not click Run (Alt + F10) — just click Debug (Shift + F9).

Then Android Studio will show you the Warnning Message with ADB, Then Just click "OK".

You can see log in logcat console. And Packages will be shown on DDMS(Devices).

Make sure you have enabled the ADB integration.

In Menu: Tools -> Android -> Enable ADB integration (v1.0)

I solved this issue after doing the following steps:

Go to Tools==>android==>Disable ADB integration and enable it again.

After that, unplug USB from device and plug in again.

Finally press shift + F9

If your Application used to be debuggable, and suddenly it's no more debuggable.Here is my solution

  1. disable and enable USB debug switch in your phone.
  2. Uninstall your application.
  3. click Run in Android Studio.

Also make sure you're not using other applications that might be using ADB too, like Eclipse for example.

Check, if you're app-project is selected in the drop-down menu next to the debug-button. Sometimes Android Studio just resets this selection...

enter image description here

If you enable

<application android:debuggable="true">
</application>

In the application manifest.xml make sure you disable it when generating the final signed apk since this can serve as a security loop hole for attackers. Only use it if only one of your applications does not show the logs. However before considering that option try this:

Navigate to tools in the android studio

 Tools==>android==>disable adb integration and again enable it
    <application android:debuggable="true">
</application>

This no longer works! No need to use debuggable="true" in manifest.

Instead, you should set the Build Variants to "debug"

Debug Mode

In Android Studio, go to BUILD -> Select Build Variant

Now try debugging. Thanks

Be sure to enable developer mode and USB debugging on the device or emulator. (Easy to forget when setting up a new one.)

You also should have Tools->Android->Enable ADB Integration active.

"Attach debugger to Android process" icon shoud be used in case when you set custom "android:process" in your Manifest file.
In my case I should select suitable process and click OK button just after "Wait for debugger" dialog appears.
enter image description here

This solved my problem. Uninstall app from device and run it again via Android studio.

Here's a little oops that may catch some: It's pretty easy to accidentally have a filter typed in for the logcat output window (the text box with the magnifying glass) and forget about it. That which will potentially filter out all output and make it look like nothing is there.

In my case I had the same problem because I try to debug signed apk. In my gradle config I made differents build variants, and try to debug release build with production keystore.jks

I tested all ways and non of them worked !!!

finally had to change the adb port and it worked. first kill adb server like below:

adb kill-server

then restart it using another port

adb -P 5038 start-server

I did clean build using below command.. Surprisingly worked.

sh gradlew clean build

Hopefully someone get help!

In my case near any line a red circle appeared with a cross and red line with a message: "No executable code found at line ..." like in Android studio gradle breakpoint No executable code found at line.

A problem appeared after updating of build.gradle. We included Kotlin support, so a number of methods exceeded 64K. Problem lines:

buildTypes {
debug {
minifyEnabled true

Change them to:

buildTypes {
debug {
minifyEnabled false
debuggable true

Then sync a gradle with a button "Sync Project with Gradle Files". If after restarting of your application you will get an error: "Error:The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html", then, like in The number of method references in a .dex file cannot exceed 64k API 17 add the following lines to build.gradle:

android {


defaultConfig {
...


// Enabling multidex support.
multiDexEnabled true
}
...
}


dependencies {
implementation 'com.android.support:multidex:1.0.2'
}

UPDATE

According to https://developer.android.com/studio/build/multidex.html do the following to enable multidex support below Android 5.0. Else it won't start in these devices.

Open AndroidManifest and find tag <application>. Near android:name= is a reference to an Application class. Open this class. Extend Application class with MultiDexApplication so:

public class MyApplication extends MultiDexApplication { ... }

If no Application class set, write so:

<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>

For me, it happened when I used Proguard, so by trying all the solutions I cleaned my project and pressed the debug button on Android Studio and it started debugging

In my case, Had to remove the proguard in debug Build Type by completely clearing the text file proguard-rules.pro and making minifyEnabled false in build.gradle file

  debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
<application android:debuggable="true">
</application>

That above code is not longer a solution. You need to enable debugging inside your build.gradle file. If you have different buildTypes make sure you set "debuggable true" in one of the build types. Here is a sample code from one of my projects.

buildTypes {
debug {
debuggable true
}


release {
debuggable false
}
}

**I have deleted other lines inside the buildTypes which are not relevant to this question from my gradle file here.

Also Make sure you select the correct build variant in your android studio while doing the debugging.

enter image description here

What worked for me in Android Studio 3.2.1

Was:

RUN -> Attach debugger to Android Process --> com.my app

Over the years I have visited this thread many times and there was always a different response that helped me. This time I figure out that it's my USB hub that was preventing debugger to work properly. As strange as it sounds, instead of having a phone connected to my computer via a USB hub, I had to connect it directly to my mac and debugging started to work.

I was able to fix it by going to Run -> Edit Configurations, selecting my project, selecting the Debugger tab, then changing 'Debug type' from 'Auto' to 'Dual':enter image description here

Restart the adb server, from android studio: Tools -> "Troubleshhot Device Connection"

Sync your project with Gradle files and that shall help.

In my case, I was trying to debug from a QA build. Change the build variant to Debug and it should work.

To change the build variant, click the menu on the left bottom named "Build Variants"

enter image description here

In case this menu is not available in your IDE you can do the following.

  1. Double click your shift button and you should see a search window popping.
  2. Type "Build Variants" as shown below

enter image description here 3. Now change your build to debug from QA or Release.

In my case, i forgot minifyEnabled=true and shrinkResources=true in my debug buildType. I change these values to false, it's worked again!

enter image description here

This worked for me in Android Studio 3.6.3

Settings -> Build, Execution, Deployment -> Debugger -> Android Debug Bridge -> Enable 'Use libs backend'

enter image description here

enter image description here

My problem was:

  1. i was using other debug app apart from my current project in AS.
  2. when i click on 'attach to debugger' it was saying "there is no process with com.xyz.abc.appname"

This helped me: just after 'make project/build' button, there is 'select run/debug configuration' > go to 'Edit configuration' The configuration is shown in the image. then my debugger started working.

April 2022 :

all the answers did not help me in android studio 2022, I found my solution, maybe help someone else: I got this error in debug window when I was using breakpoint and debug mode:

Signal: SIGILL (signal SIGILL: illegal instruction) android studio

So the solution is:

go to Run> Edit Configuration > Debugger Tab select Java only from debug type. enter image description here

I'll add this not because it's the solution to the question, but I've not seen it anywhere else. If you're running a custom OS and the only debuggable apps listed in Android Studio are the low level ones (probably Qualcomm stuff), you may be debugging as root. If whoami within adb shell shows your name as root, try running adb unroot. Your name should now be shell. Then try debugging again.

A simple cold boot from device manager menu solved this for my emulator.cold boot menu option