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

Posted

技术标签:

【中文标题】无法在 Android Studio 中调试应用程序【英文标题】:Not Able To Debug App In Android Studio 【发布时间】:2013-05-21 04:11:37 【问题描述】:

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

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

仅供参考之前在 Eclipse 中开发此应用程序,adb 工作正常。

【问题讨论】:

您找到解决方案了吗? 从设备上卸载应用程序并从 Android Studio 再次运行解决了我的问题 我今天遇到了一个问题,断点无法停止程序。这是因为在 build.gradle 中设置。我使用 minifyEnabled 设置调试构建类型为 true,删除它并且断点工作。 看看我的回答here。这可能会解决问题 【参考方案1】:

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

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

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

最后按 shift + F9

【讨论】:

这对我有帮助。突然调试停止工作,之后再次工作。 我只需要关闭并重新打开该项目实例的 android studio 以使错误工作:/ Android Studio 3.1.3 版中没有名为“Tools==>android”的菜单项,我无法在任何地方找到此选项 Android Studio 4 的菜单中没有“adb”选项 使用此选项在 Android Studio 4 中重新启动 ADB:工具 -> “设备连接故障排除” 在此处点击“下一步”按钮。最后 ADB 重启选项出现在第 4 步中【参考方案2】:

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

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

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

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

【讨论】:

我们可以像在 eclipse 中一样一次走一条线吗?如果可以,该怎么做? 当然可以。一旦你命中断点,调试窗口就会显示出来,顶部的工具栏包含各种步骤命令。您还可以从File -> Settings -> Keymap 配置各种调试键盘快捷键 - 它们位于Main menu -> Run 下。请参阅this 了解更多信息。 最新版本的 android studio 并没有强制你设置 android:debuggable,事实上它显示了一个波浪线,建议在配置中而不是在清单中设置它。这有助于避免意外发布带有调试信息的应用。 不工作 2015,build.gradle 把 buildTypes debug debuggable true 这对我有用。我把清单中的 和调试完美。谢谢【参考方案3】:

另一件需要注意的事情(我这样做是为了知道,呵呵)。一定不要启用 Proguard 进行调试!

【讨论】:

谢谢,不得不将 minifyEnabled 设为 false 并将 shrinkResources 设为 false【参考方案4】:

即使在 Android Studio 中多次调试后,我也随机遇到了这个问题。有一天,调试器无法附加。我只需要退出 Android Studio 并重新打开它,调试器就会重新开始工作。

【讨论】:

【参考方案5】:
    <application android:debuggable="true">
</application>

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

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

在 Android Studio 中,转到 BUILD -> 选择 Build Variant

现在尝试调试。谢谢

【讨论】:

构建菜单没有“选择构建变体”选项。【参考方案6】:

这对我有用:

    关闭 Android Studio。

    打开shell,写:

    adb kill-server

    adb start-server

【讨论】:

正是我想要的。以前,我可以使用简单的adb reconnect 命令完成此操作,但在 AS 3.1 中不再执行此操作(也许我做错了什么,或者还不够? 顺便说一句,这个解决方案对我有用,而无需关闭 AS 或终端会话。【参考方案7】:

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

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

【讨论】:

【参考方案8】:

确保您已启用 ADB 集成。

在菜单中:工具 -> Android -> 启用 ADB 集成 (v1.0)

【讨论】:

【参考方案9】:

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

【讨论】:

这让我多次犯错,即使在其他 IDE 中也是如此。我相信调试发布的能力在大多数 IDE 中是可配置的,如果您想将调试器附加到已发布的应用程序,有时会被建议。【参考方案10】:

当您在 Manifest 文件中设置自定义“android:process”时,应使用“将调试器附加到 Android 进程”图标。 在我的情况下,我应该选择合适的进程并在“等待调试器”对话框出现后单击“确定”按钮。

【讨论】:

可怕的解决方法,但现在唯一对我有用,谢谢!!! 为我工作,即使我的清单文件中没有自定义“android:process”。 这是我的解决方案。谢谢【参考方案11】:

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

    从设备上卸载应用程序。 清理项目。 “构建 -> 清理项目。” 重建并安装。

【讨论】:

【参考方案12】:

在我的情况下,在任何行附近都会出现一个红色圆圈,带有一个十字和红线,并带有一条消息:“在行...找不到可执行代码”,如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 了解如何解决此问题”,然后像在The number of method references in a .dex file cannot exceed 64k API 17 中一样添加以下行至build.gradle:

android 

    defaultConfig 
        ...

        // Enabling multidex support.
        multiDexEnabled true
    
    ...


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

更新

根据https://developer.android.com/studio/build/multidex.html 执行以下操作以启用 Android 5.0 以下的 multidex 支持。否则它不会在这些设备中启动。

打开AndroidManifest 并找到标签&lt;application&gt;。近android:name= 是对Application 类的引用。开这堂课。用MultiDexApplication 扩展Application 类所以:

public class MyApplication extends MultiDexApplication  ... 

如果没有设置Application类,那么写:

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

【讨论】:

【参考方案13】:

检查,如果您在调试按钮旁边的下拉菜单中选择了应用项目。有时 Android Studio 只是重置此选择...

【讨论】:

【参考方案14】:

如果启用

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

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

导航到 android studio 中的工具

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

【讨论】:

【参考方案15】:

还要确保您没有使用其他可能也在使用 ADB 的应用程序,例如 Eclipse。

【讨论】:

【参考方案16】:

我测试了所有方法,但都没有成功!!!

最后不得不更改 adb 端口并且它起作用了。首先杀死 adb 服务器,如下所示:

adb kill-server

然后使用另一个端口重新启动它

adb -P 5038 start-server

【讨论】:

【参考方案17】:

我使用以下命令进行了干净的构建.. 出乎意料地工作。

sh gradlew clean build

希望有人能得到帮助!

【讨论】:

我们必须在哪个控制台启动它? 在 android studio 终端中运行此命令或从外部终端导航到您的项目【参考方案18】:

就我而言,我在调试 buildType 中忘记了 minifyEnabled=true 和 shrinkResources=true。我把这些值改成false,又能用了!

【讨论】:

【参考方案19】:

请务必在设备或模拟器上启用开发者模式和 USB 调试。 (设置新的时容易忘记。)

【讨论】:

【参考方案20】:

您还应该激活工具->Android->启用 ADB 集成。

【讨论】:

【参考方案21】:

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

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

【讨论】:

【参考方案22】:

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

【讨论】:

【参考方案23】:

从 android studio 重启 adb 服务器:工具 -> "Troubleshhot Device Connection"

【讨论】:

【参考方案24】:

这解决了我的问题。 从设备上卸载应用,然后通过 Android Studio 再次运行。

【讨论】:

【参考方案25】:

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

【讨论】:

我在 android studio 4.1 中遇到了这个问题,你的解决方案帮助了我。谢谢【参考方案26】:
<application android:debuggable="true">
</application>

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

buildTypes 
    debug 
        debuggable true
    

    release 
        debuggable false
    

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

另外,请确保在进行调试时在您的 android studio 中选择正确的构建变体。

【讨论】:

【参考方案27】:

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

【讨论】:

【参考方案28】:

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

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

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

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

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

【讨论】:

【参考方案29】:

这在 Android Studio 3.6.3 中对我有用

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

【讨论】:

【参考方案30】:

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

【讨论】:

以上是关于无法在 Android Studio 中调试应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Android Studio 中切换到调试构建变体

Android studio无法在坚果手机上安装应用进行调试

Android Studio 调试器无法打开选定的 VM 调试端口 (8700)

Android Studio 调试器菜单项灰显

无法在 Android Studio 中调试 onPostExecute

为什么我在android studio中调试时看不到代码?