【问题标题】:Apk only runs in debug mode. Apk started with "Run" in Eclipse stops on breakpointsApk 仅在调试模式下运行。 Apk 以 Eclipse 中的“运行”开始,在断点处停止
【发布时间】:2011-10-15 09:02:04
【问题描述】:

我注意到以前有人问过这个问题,但我还没有找到答案。这个问题的主要特点是,当 apk 部署为“运行”时,Eclipse 会在断点处停止

到目前为止,我已经完成了这些工作,但没有一个能够从 Project shell -> Run As -> 1. Android Application

生成正确运行的“运行”版本

• 断开连接、卸载并重新安装 apk 并不能解决问题(这是平板设备,而不是模拟器。) • 使所有项目和库项目都可以使用文件系统写入
• 全新的项目可以正常工作,例如他们不会在与问题项目相同的 Eclipse 工作区中的“运行”模式下的断点处停止
• Window -> Preferences -> Run/Debug(expand) -> Launching “Launch in debug mode when workspace contains breakpoints”设置为从不
• 关闭和打开 Eclipse
• 在该透视图的“调试”选项卡下杀死所有正在运行的进程
• 通过删除主要和库项目依赖项的 res 和 gen 文件夹,在 Eclipse IDE 中和手动清理整个工作区
• 检查项目构建文件中是否出现“调试”一词
• Clean 从命令行使用以下命令构建项目:ant clean 然后 ant release

有趣的是,当我从命令行清理构建然后重新安装新的 apk 时,如果 Eclipse 已打开,调试器将附加到正在运行的进程并在第一个断点处停止!如果 Eclipse 关闭,程序将使用标准的“Waiting for Debugger”对话框等待调试器。

所以在构建过程中出现了问题(还没有弄清楚所有文件都涉及到什么)和/或 .metadata 中的某些东西和/或一些依赖。

编辑 我在以下位置找到了一个文件:

C:\Projects\Mobile\Android\.metadata\.plugins\org.eclipse.debug.core\.launches\MyProjectName.launch

在xml中:

<launchConfiguration type="com.android.ide.eclipse.adt.debug.LaunchConfigType">

不知道这是否是一个线索,但如果我删除该文件,Eclipse 只会将其替换为相同的。

编辑

*确认项目在另一台机器上构建和运行时运行正确,所以我怀疑是我的工作机器的 Eclipse 工作区导致了这个问题。也许我需要丢弃所有工作区的元数据并重新开始。

【问题讨论】:

  • 你尝试右键然后Run as...-&gt; Android application
  • 你杀了adb然后重新启动了吗?有时它会产生非常奇怪的行为。

标签: android debugging release


【解决方案1】:

你说你有断点?

试试:

Window -&gt; Preferences -&gt; Run/Debug(expand) -&gt; Launching

应该有一个标题为“在工作区包含断点时以调试模式启动”的部分

如果那不是“从不”,那将是您的问题。

【讨论】:

  • 我当时真的很兴奋——“从不”一直被选中。还尝试更改它并再次返回 - “运行”仍然在断点处停止。
【解决方案2】:

有时会发生在我身上 - 您是否从手机上完全卸载了该应用程序并尝试重新安装?你可以安装apk然后断开手机与机器的连接吗? (如果您使用的是模拟器,obv 将无法工作)

【讨论】:

  • 断开连接、卸载并重新安装 apk 并不能解决问题。我只为这个项目使用物理设备。
【解决方案3】:

更新

使用 Intellij 而不是 Eclipse 进行 Android 开发(IDE 接口错误少得多),然后完全忽略以下内容:

自原始帖子以来我发现的两条重要规则:

1) 养成等到 Eclipse 完成构建工作区的习惯——指示器默认显示在 Eclipse 的左下角。在具有多个库的大型项目中,WS 构建时间可能需要几分钟。在构建完成之前不要更改任何内容。

2) 关闭工作区中的所有项目,然后从没有 lib 依赖项的项目开始,一次重新打开它们,依此类推。确保在您可以验证工作区已完成构建已打开的内容之前不要打开项目。在打开下一个项目之前解决所有问题。

祝你好运。

【讨论】:

    【解决方案4】:

    我遇到了同样的问题。解决方案是,重新启动您的设备。祝你好运。

    【讨论】:

    • 我讨厌这样解决问题,但这是唯一对我有用的方法。
    【解决方案5】:

    我遇到了同样的问题:我只能在调试模式下运行我的应用程序,但是当我按下“运行”按钮时它无法正常启动。我在这里尝试了所有解决方案,但对我没有任何效果。

    一段时间后,我在我的活动开始时找到了android.os.Debug.waitForDebugger();。我希望这个答案有时对某人有所帮助,因为当我搜索帮助时,这个问题首先出现在 Google 中。

    【讨论】:

      【解决方案6】:

      我有同样的问题,我需要 4 个步骤来解决它们:

      1. 断开设备
      2. 重启设备
      3. 清理并构建工作区中的所有项目。
      4. 在模拟器中以运行模式启动应用并检查是否正常。
      5. 在运行模式下启动设备中的应用程序,一切正常。

      仅重启设备对我不起作用!

      【讨论】:

        【解决方案7】:

        在三星 S4 上遇到同样的问题,通过取消选中“开发人员选项”下的“等待调试器”选项来解决问题。

        【讨论】:

          【解决方案8】:

          遇到同样的问题,请检查您的项目中是否没有这行代码:

          android.os.Debug.waitForDebugger();
          

          它可能存在于服务中用于调试目的,一旦您将其注释掉,它将在发布模式下工作。问题是这行代码等待调试器,如果你不是在调试模式下运行它会无限期地等待

          【讨论】:

            猜你喜欢
            • 2019-06-19
            • 2014-09-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-07-17
            • 1970-01-01
            • 2012-07-09
            • 1970-01-01
            相关资源
            最近更新 更多