无法在 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
并找到标签<application>
。近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 调试器无法打开选定的 VM 调试端口 (8700)