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

时间:2013-05-25 21:12:38

标签: android debugging adb android-studio

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

screenshot

我需要对我的应用做些什么才能使其“可调试”?

FYI之前在Eclipse中开发此应用程序,adb工作正常。

35 个答案:

答案 0 :(得分:107)

我在执行以下步骤后解决了这个问题:

转到工具==> android ==>禁用ADB集成并再次启用它。

之后,从设备上拔下USB,然后重新插入。

最后按shift + F9

答案 1 :(得分:76)

工具栏上有一个调试图标。它看起来像一个小“bug”,位于运行图标旁边(看起来像一个播放按钮)。尝试用它启动应用程序。

Click here to debug

编辑:使用带有Gradle的Android Studio时不推荐使用以下内容。

AndroidManifest.xml文件中还有一个调试标志。它位于应用程序标记下,应设置为“true”,如下所示:

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

答案 2 :(得分:26)

另外要注意的事情(我这样做,所以我知道,呃)。一定不要启用Proguard进行调试!

答案 3 :(得分:15)

即使在Android Studio中多次调试后,我也随机出现了这个问题。有一天调试器就不会附加了。我只是不得不退出Android Studio并重新打开它,调试器再次开始工作。

答案 4 :(得分:11)

这对我有用:

  1. 关闭Android Studio。
  2. 打开shell,然后写:

    adb kill-server

    adb start-server

答案 5 :(得分:11)

确保已启用ADB集成。

在菜单中:工具 - &gt; Android - &gt;启用ADB集成 (V1.0)

答案 6 :(得分:10)

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

这不再有效!无需在清单中使用debuggable =“true”。

相反,您应该将Build Variants设置为“debug”

Debug Mode

在Android Studio中,转到构建 - &gt; 选择构建变体

现在尝试调试。感谢

答案 7 :(得分:9)

如果您的应用程序曾经是可调试的,并且突然间它不再可调试。这是我的解决方案

  1. 禁用并启用手机中的USB debug开关。
  2. 卸载您的应用程序。
  3. 点击在Android Studio中运行。

答案 8 :(得分:7)

在Android Studio中无法调试应用程序的一种情况是选择了“发布”构建变体。发生在我身上 - Gradle构建了应用程序的发布版本(不可调试),然后Android Studio在尝试连接调试器时失败。

答案 9 :(得分:7)

将调试程序附加到Android进程“图标应该用于您在清单文件中设置自定义”android:process“的情况。
在我的情况下,我应该选择合适的过程,然后在出现“Wait for debugger”对话框后单击OK按钮。
enter image description here

答案 10 :(得分:6)

这偶尔发生在我身上,我还没弄明白为什么。已经发布的解决方案都没有对我有用。唯一对我有用的是:

  1. 从设备中卸载应用程序。
  2. 清洁项目。 &#34;构建 - &gt;清洁项目。&#34;
  3. 重建并安装。

答案 11 :(得分:4)

检查是否在调试按钮旁边的下拉菜单中选择了app-project。有时Android Studio只会重置此选项......

enter image description here

答案 12 :(得分:3)

如果启用

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

在应用程序 manifest.xml 中,请确保在生成最终签名的apk时禁用它,因为这可以作为攻击者的安全循环漏洞。 仅在您的一个应用程序未显示日志时才使用它。但是在考虑这个选项之前试试这个:

导航到android studio中的工具

 Tools==>android==>disable adb integration and again enable it

答案 13 :(得分:3)

另外请确保您没有使用其他可能正在使用ADB的应用程序,例如Eclipse。

答案 14 :(得分:2)

确保在设备或仿真器上启用开发人员模式和USB调试。 (设置新的时容易忘记。)

答案 15 :(得分:2)

您还应该拥有工具 - &gt; Android-&gt;启用ADB集成。

答案 16 :(得分:2)

我可以通过以下方法来修复它:运行->编辑配置,选择我的项目,选择调试器标签,然后将“调试类型”从“自动”更改为“双”:enter image description here

答案 17 :(得分:2)

我使用下面的命令清理了构建..令人惊讶的工作。

  

sh gradlew clean build

希望有人得到帮助!

答案 18 :(得分:1)

这解决了我的问题。 从设备上卸载应用程序并通过Android studio再次运行。

答案 19 :(得分:1)

在我的情况下,我在调试buildType中忘记了minifyEnabled = true和rinkleResources = true。我将这些值更改为false,然后再次使用!

enter image description here

答案 20 :(得分:1)

在我的情况下,必须通过完全清除文本文件proguard-rules.pro并在build.gradle文件中创建minifyEnabled false来删除调试构建类型中的proguard

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

答案 21 :(得分:1)

在我的情况下,在任何一行附近出现一个红色圆圈,其中有一条十字和红线,并显示一条消息:“在行中找不到可执行代码......”,如Android studio gradle breakpoint No executable code found at line中所示。

更新build.gradle后出现问题。我们包括Kotlin支持,因此许多方法超过了64K。问题线:

buildTypes {
    debug {
        minifyEnabled true

将它们更改为:

buildTypes {
    debug {
        minifyEnabled false
        debuggable true

然后将gradle与“使用Gradle文件同步项目”按钮同步。如果在重新启动应用程序后,您将收到错误:“错误:.dex文件中的方法引用数不能超过64K。了解如何在https://developer.android.com/tools/building/multidex.html处解决此问题”,然后像{{3将以下行添加到build.gradle

android {

    defaultConfig {
        ...

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

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

<强>更新

根据The number of method references in a .dex file cannot exceed 64k API 17执行以下操作以启用Android 5.0以下的multidex支持。否则它不会在这些设备中启动。

打开AndroidManifest并找到标记<application>。近android:name=是对Application类的引用。打开这堂课。使用MultiDexApplication扩展Application类,所以:

public class MyApplication extends MultiDexApplication { ... }

如果没有设置Application类,请写:

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

答案 22 :(得分:1)

我测试了所有方法,但没有工作!!!

最后不得不改变adb端口并且它有效。首先杀死adb服务器,如下所示:

adb kill-server

然后使用另一个端口

重新启动它
adb -P 5038 start-server

答案 23 :(得分:0)

对我来说,它发生在我使用Proguard时,所以通过尝试所有解决方案,我清理了我的项目并按下Android Studio上的调试按钮,它开始调试

答案 24 :(得分:0)

在我的情况下,我有同样的问题,因为我尝试调试签名的apk。在我的gradle配置中,我创建了不同的构建变体,并尝试使用生产keystore.jks调试发布版本

答案 25 :(得分:0)

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

上面的代码不再是解决方案。您需要在build.gradle文件中启用调试。如果您使用不同的buildType,请确保在其中一种构建类型中设置“ debuggable true”。这是我的一个项目的示例代码。

buildTypes {
    debug {
        debuggable true
    }

    release {
        debuggable false
    }
}

**我已从我的gradle文件中删除了与该问题无关的buildTypes中的其他行。

还要确保在进行调试时在android studio中选择正确的构建版本。

enter image description here

答案 26 :(得分:0)

在Android Studio 3.2.1中对我有用的东西

原是:

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

答案 27 :(得分:0)

这些年来,我已经多次访问此主题,并且总是有不同的回答对我有所帮助。这次我发现是USB集线器阻止了调试器正常工作。听起来很奇怪,我没有直接通过USB集线器将手机连接到计算机,而是不得不将其直接连接到Mac并开始调试。

答案 28 :(得分:0)

这里有一些小哎呀可能会抓到一些:很容易意外地为logcat输出窗口输入过滤器(带放大镜的文本框)而忘了它。这可能会过滤掉所有输出并使其看起来像什么都没有。

答案 29 :(得分:0)

从android studio重新启动adb服务器:工具->“ 故障排除设备连接

答案 30 :(得分:0)

使用Gradle文件同步项目,这会有所帮助。

答案 31 :(得分:0)

就我而言,我试图从QA版本进行调试。将构建变体更改为“调试”,它应该可以工作。

要更改构建变体,请单击左下方名为“构建变体”的菜单

enter image description here

如果此菜单在您的IDE中不可用,则可以执行以下操作。

  1. 双击您的班次按钮,您应该会看到一个搜索窗口弹出。
  2. 键入“构建变体”,如下所示

enter image description here 3.现在,将您的构建更改为从QA或Release进行调试。

答案 32 :(得分:0)

这在Android Studio 3.6.3中对我有用

设置->构建,执行,部署->调试器-> Android调试 网桥->启用“使用库后端”

enter image description here

答案 33 :(得分:0)

enter image description here

我的问题是:

  1. 除了我在 AS 中的当前项目之外,我还使用了其他调试应用。
  2. 当我点击“附加到调试器”时,它说“com.xyz.abc.appname 没有进程”

这对我有帮助: 就在“制作项目/构建”按钮之后,有“选择运行/调试配置”> 转到“编辑配置” 配置如图所示。 然后我的调试器开始工作。

答案 34 :(得分:-3)

我有同样的问题,我通过谷歌尝试了几乎所有类型的解决方案。但我不能 解决这个问题。最后,我找到了解决方案。这是Android Studio Bug。

请勿点击Run (Alt + F10) - 只需点击Debug (Shift + F9)

然后Android Studio会显示ADB的警告信息,然后点击“确定”。

您可以在logcat控制台中看到登录。包将显示在DDMS(设备)上。