无法在 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的主要内容,如果未能解决你的问题,请参考以下文章