无法在 android 设备上调试应用程序 - Android Studio 2.0

Posted

技术标签:

【中文标题】无法在 android 设备上调试应用程序 - Android Studio 2.0【英文标题】:Not able to debug app on android device - Android Studio 2.0 【发布时间】:2016-04-19 16:07:55 【问题描述】:

在我将 android studio 更新到 2.0 后,我无法在我的设备 (Asus Zenphone 2) 上调试应用程序。在 Android Studio 中单击调试图标后,我一直在调试选项卡中看到以下消息。

Android Studio UI 中调试选项卡中的消息

---------------------------------------------------------------
Waiting for application to come online: packagename
Waiting for application to come online: packagename
Waiting for application to come online: packagename
Waiting for application to come online: packagename

我一直看到标题为“等待调试器”和强制关闭按钮的警报对话框。

我搜索过,但似乎只有两个来自谷歌的结果。

我重新启动了 Android Studio,检查了手机上的开发者设置...

有没有人遇到过这个问题。请帮我。我无法运行模拟器,因为我的 mac 太滞后了。提前谢谢你。

【问题讨论】:

您是否能够在没有调试器的情况下运行该应用程序?更新的应用程序是否已安装,但无法由 IDE 运行? 是的,我可以在没有调试器的情况下运行应用程序。 好的,所以它与 MAC 地址注册无关。您可以尝试禁用 Instant Run,看看是否有帮助。您会在 Android Studio 2.0 中的 Settings > Build, Execution, Deployment > Instant Run 中找到。 刚刚禁用 Instant Run,没有运气。我担心手机会阻止应用程序进行调试。在更新 Android Studio 时,我也尝试使用 CM Applock 进行配置。然后我禁用了所有但仍然出现该错误。 奇怪的是,这个块只在您升级到 Android Studio 2.0 时发生。但是,我不知道问题可能是什么。 【参考方案1】:

问题是安装并启动应用后,AndroidStudio启动的调试器客户端无法连接到设备上的调试器服务器。 这可能有很多原因,请查看此答案和此页面上显示的另一个答案,看看是否有一个为您解决了问题

为帮助找出问题所在,请查看 AS 中“调试器”窗口的“控制台”选项卡。前几行之一应如下所示:

$ adb shell am start -n "com.acme.audtest/com.acme.AudTest" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D

将该行剪切并粘贴到命令提示符中,删除“-D”,然后执行它。 如果您的应用程序(“AudTest”)正常运行,则问题出在 AS、与设备的通信或设备的配置上。如果应用程序未启动,则它位于 .apk 中。 (不是完整的解决方案,但开始为您指明正确的方向 - 以下哪种解决方案适用于您的情况。)

首先我选择了第二个选项,它运行良好。但是不知道为什么我改为选择第一个选项。因此,调试器将永远显示消息Waiting for application to come online。我没有注意到这一点,只是认为另一个应用程序阻止了我调试,或者这是 Android Studio 2.0 的问题。

所以,只需选中第二个选项即可解决我的问题。谢谢大家。

【讨论】:

【参考方案2】:

重新启动 Android Studios (2.1.1) 为我解决了这个问题。

【讨论】:

重启也对我有用。但经常这样做很痛苦。 我更新到 Android Studios 2.1.3 并且从那以后没有遇到过这个问题。不确定是否相关。 我在 2.1.3 上运行,但仍然有同样的问题。我不认为这是相关的。【参考方案3】:

有两种可能:

1.USB调试关闭:

启动设备的开发者选项 开启 USB 调试

2.在 Android-Studio 中:文件 -> 使缓存无效/重启

任何人都可以对你有用。试试吧

【讨论】:

【参考方案4】:

正确答案是关闭您的 Android 设备管理器。 在我关闭它之前,这些建议都不适合我。

【讨论】:

【参考方案5】:

对我来说,问题在于“Android Studio”+“Intellij IDEA”并排运行。通过禁用“Intellij IDEA”中捆绑的“Android 插件”来修复。 (注意:问题仅出现在这些 IDE 的某些更高版本中)

【讨论】:

非常感谢您的回复...这就是我遇到问题的原因。你今天为我节省了很多时间。【参考方案6】:

我不得不删除参数

 android:exported = "false"

来自主要活动。

【讨论】:

【参考方案7】:

除了一种解决方案外,没有什么对我有用...

清除包含对我有用的配置信息的 Intellij IDEA (Android Studio) .idea 目录:

退出 Android Studio 导航到您尝试调试的项目 备份您修改的 .idea 中的所有文件(如果您的项目将其中任何一个检查到 VCS 中) 删除 .idea 目录 在 Android Studio 中打开项目

【讨论】:

【参考方案8】:

如果你在模拟器上遇到这个问题,运行adb reconnect 对我有用。设备有类似的命令adb reconnect device

【讨论】:

【参考方案9】:

**

这个答案可能对那些成功连接他们的人有所帮助 沿netbeans NB Android的设备,但在调试时没有应用程序 正在出现在设备上。

**

好的,所以解决方案是在移动设置中检查您的 android 设备版本,最后单击关于设备:您将在那里知道您的 android 版本。

现在为您的 netbeans android 项目选择相同的版本。

右键单击项目名称单击属性,然后将目标更改为与您的android设备相同。

(在我的例子中,android 版本是 4.4.2,所以我为我的项目目标选择了相同的版本)

在继续之前单击 netbeans 中项目选项卡旁边的服务选项卡,然后右键单击 Android 设备并单击重新启动 ADB。

最后你需要再次右键单击项目,然后单击清除并构建。

现在你可以满怀希望地跑了。

【讨论】:

【参考方案10】:

我只是想分享我的经验,因为我遇到了同样的错误,并且无法使用你们发布的所有解决方案来解决它。我什至删除了几次我的虚拟设备,无法让它再次工作。

在我的应用中,我有一个自定义权限 com.example.CUSTOM_PERMISSION,我想用它来保护我的 Main Activity 免受混淆代理攻击。

    <permission android:name="com.example.CUSTOM_PERMISSION"
            android:label="@string/permlab_deadlyActivity"
            android:description="@string/permdesc_deadlyActivity"
            android:permissionGroup="android.permission-group.COST_MONEY"
            android:protectionLevel="dangerous" />

。 . .

    <activity
            android:permission="com.example.CUSTOM_PERMISSION"
            android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

不知何故,该属性 android:permission 阻止了我的应用程序在虚拟设备上安装和运行,即使它可以使用 Gradle 成功编译和构建。 删除后,一切又恢复正常 我不确定应用程序是否受到这种保护,我正在构建另一个测试应用程序来尝试执行混淆代理,看看自定义的声明是否足够。

希望这可以帮助像我这样生气的人!

【讨论】:

【参考方案11】:

我在Android模拟器中遇到了这个问题,通过进入工具->AVD管理器,选择设备,右键单击“立即冷启动”来解决。

【讨论】:

【参考方案12】:

对我有帮助的解决方案是点击将调试器附加到android进程并将调试器设置为java。

【讨论】:

【参考方案13】:

刚刚开始发生这种情况时,只是将我的经验投入其中。关于所有这些答案,我尝试了其中一些,但似乎没有一个有效。所以我从头开始:

初始设置: - USB 调试已启用 - 连接USB时总是提示(我通常只在充电模式下连接) - 允许在仅充电模式启用 ADB 调试 - 等待调试器禁用 - 验证通过 USB 启用的应用程序

我为恢复调试所采取的步骤:

关闭 Android Studio - 我并没有像讨论的那样删除 .idea 文件夹,但我相信它不会有什么坏处。 禁用 USB 调试 撤销 USB 调试授权 重新连接设备
$ adb devices
> <Device Id> unauthorized
启用 USB 调试 重新连接设备 出现提示时选择允许(我点击了始终允许)
$ adb devices
> <Device Id> device

打开 Android Studio 并点击调试 - 应用程序已成功启动,我仍然收到 5-6 条这样的消息,但它工作正常:

$ adb shell am start -n "com.exampleapp/com.exampleapp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.exampleapp.test | com.exampleapp
Waiting for application to come online: com.exampleapp.test | com.exampleapp
Waiting for application to come online: com.exampleapp.test | com.exampleapp
Connecting to com.exampleapp
Connected to the target VM, address: 'localhost:8600', transport: 'socket'

反应原生

附带说明 - 这种情况经常发生,我不确定是在从 react-native run-android 运行还是在 Android Studio 中调试之间来回切换,但无论如何我不得不这样做几次(最终决定记录)。

还记得

$ adb reverse tcp:8081 tcp:8081

并在调试时启动打包程序(我倾向于忘记)。

【讨论】:

【参考方案14】:

尝试重启亚行。执行终端命令:

adb kill-server
adb start-server

【讨论】:

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

无法发现 Android 设备

Kivy 相机代码无法在 android 设备上运行

颤振设备命令无法识别 android 设备

无法调试 Android 应用程序

如何无线调试Android应用

无法直接从 Eclipse 到设备调试 android 应用程序