【问题标题】:debugging an app startup with android maven plugin使用 android maven 插件调试应用程序启动
【发布时间】:2011-12-30 11:40:04
【问题描述】:

我正在使用最新版本的 android maven 插件。我使用 android:deploy 和 android:run 在我的设备上启动我的应用程序。当我想调试时,我在 Eclipse 中进入 DDMS 并检查我的应用程序的绿色错误图标。一切正常...但我只能调试正在运行的应用程序,即它已经启动。如果我在应用程序构造函数或 onCreate 中设置断点,它不会停止(显然是因为应用程序已经启动并且调试尚未激活……)。

所以我的问题是:如何直接从 maven 以调试模式启动我的应用程序,就像我从 eclipse 启动的应用程序一样?

谢谢

【问题讨论】:

  • 您是否根据文档 (code.google.com/p/maven-android-plugin/wiki/Debug) 中的建议确认了您的 Eclipse 设置?
  • 是的,先生!这就是我在问题的第一部分中所描述的。它运行得很好,就像在文档中一样。但不是在启动时!

标签: android debugging plugins maven startup


【解决方案1】:

感谢 Lukasz,我在 Idea 中找到了启动以触发调试模式的命令。 基本上,应用程序是使用 android:deploy 部署的,但不是 android:run,而是使用 -D 启动 shell“am”命令。这是任何有兴趣的人的用法。

ovh-ybi$ adb shell
# am
usage: am [subcommand] [options]

start an Activity: am start [-D] <INTENT>
    -D: enable debugging

send a broadcast Intent: am broadcast <INTENT>

start an Instrumentation: am instrument [flags] <COMPONENT>
    -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)
    -e <NAME> <VALUE>: set argument <NAME> to <VALUE>
    -p <FILE>: write profiling data to <FILE>
    -w: wait for instrumentation to finish before returning

start profiling: am profile <PROCESS> start <FILE>
stop profiling: am profile <PROCESS> stop

<INTENT> specifications include these flags:
    [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
    [-c <CATEGORY> [-c <CATEGORY>] ...]
    [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
    [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
    [-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
    [-n <COMPONENT>] [-f <FLAGS>] [<URI>]

【讨论】:

    【解决方案2】:

    除了 android:deploy 和 android:run,您可以通过 eclipse 而不是 maven 在调试中启动您的应用程序。您必须正确配置项目才能执行此操作。

    【讨论】:

    • 感谢您的回答。这有点难以实现,因为 Maven 和 Eclipse 看不到相同的东西。我花了一个小时试了一下。这也意味着失去 maven 的依赖系统,并在 eclipse 中将库的管理转变为可怕的事情。主要问题:eclipse尝试将带有javax的库插入apk ...和dalvik dosnt这样。为什么日食这样做?不知道?在哪里?也不知道。。
    • 我使用的是 Idea 而不是 Eclipse。也许你可以试试这个?我们在 Eclipse 中的项目不断损坏。因此,我必须使用更快的设备:我在 ddms 中单击调试或在启动应用程序时单击它。在Idea中,大多数时候一切都很好。我可以从 Idea 以调试模式启动应用程序
    • 我安装了 Idea 只是为了尝试它,它为我提供了我正在寻找的信息。谢谢卢卡斯。请参阅下面的答案。
    【解决方案3】:

    您可以使用this post 部署和启动它。调试我猜,希望你只需要更改一些参数。

    【讨论】:

    • 这很有趣,谢谢。但是我没有找到任何方法来激活调试。文档中没有执行此操作的参数。
    • 但是这里是文档。我认为您需要指定一个端口并将调试器附加到它code.google.com/p/maven-android-plugin/wiki/Debug
    • 嗯...这就是我目前的工作方式。如果您仔细阅读,您会看到应用程序已启动(第 2 点)并且仅在调试开始之后(第 5 点)。我想要的是当应用程序启动时,调试也同时开始了。
    • 抱歉浪费了您的时间。我会在开始真正的调试过程之前附加调试器并将超时设置得足够高(至少在 Netbeans 中有一个选项)。您也可以在关键断点之前引入睡眠,或者只使用 eclipse 或使用不同的活动来启动实际活动的意图或任何其他活动。有创意:)!
    • 我刚刚在引用的帖子中添加了评论,但认为在此处添加它也是一个好主意。您可以使用 -Dandroid.run.debug=true 在应用启动时激活调试。
    猜你喜欢
    • 2021-11-19
    • 1970-01-01
    • 2018-04-17
    • 2023-03-29
    • 2013-05-31
    • 2015-03-02
    • 2012-05-09
    • 1970-01-01
    • 2012-07-05
    相关资源
    最近更新 更多