应用程序在启动后立即关闭,没有错误,VS调试器中没有步进

时间:2018-06-01 17:11:20

标签: android xamarin.android visual-studio-2017

我们收到了一堆用于集体测试的新手机。目前,要在设备上部署/安装应用程序,我只需通过USB电缆将其连接到开发计算机并从VisualStudio运行应用程序。

嗯,这些ZTE Z798BL(Android 6.0.1)完全出乎意料:

  1. 我在手机上配置开发者选项(启用USB调试和保持清醒)。
  2. 我连接USB线,手机检测到另一端的VStudio,要求确认。现在,该设备可以在VStudio的设备下拉菜单中看到 - 我选择它。
  3. 我' Run'该应用程序。 VStudio编译,打包,压缩对齐,然后部署.apk。
  4. VStudio切换到调试模式。
  5. 手机加载第一个活动,但没有内容 - 只加载带标签的标题。
  6. 几秒钟后,活动消失,VStudio切换回编辑模式.. 我们已经完成
  7. 没有例外,没有错误,没有"不幸的是......"电话上的消息。再试一次没有影响。在第一行代码上设置断点没有任何影响。尝试单步执行(使用[F11]而不是[F5])没有任何影响 - 应用程序在到达我的代码之前就会终止

    启动尝试期间的设备日志充满了来自各地的大量 shtuff "How do they expect us to find anything in this sh*t?" - The Fifth Element

    尝试使用PID过滤10行,完全没有线索: only 10 entries for this process??

    一时兴起,我带了一台新的Google Pixel手机,该手机尚未与开发电脑进行USB连接。插入,启用USB调试,在VisualStudio中选择它(仍然在同一个会话中 - 没有重新启动,没有重新启动!),单击“运行”,并在“输出”窗口中显示常规构建操作后..瞧:这是第一次在Pixel上完美运行的应用

    接下来我试了一个ActivityLifecycle样本。它做了同样的事情:"活动A"没有按钮的标题在手机上闪烁并立即消失,没有任何错误或例外。我改为:

    User.php

    导致标题更改为"活动A Z "但是我仍然无法单步执行中兴通讯上的任何代码

    如果不针对任何细节定位,该应用会在以下设备/ Android版本上运行:

    • Google Nexus 4(4.3,API:18)
    • BLU Vivo 5 Mini(6.0,API:23)
    • Samsung SM-T377V(7.1.1,API:25),更新自(6.0.1,API:23)
    • Google Pixel(8.1.0,API:27)

    因此,我的猜测是 - 这与中兴通讯设备本身有关。 我们得到了很多人,所以我接下一个...... 每个人的行为方式相同! WTF ??

    App的TargetPlatform为7.1,MinimumVersion为4.3,所有5种支持的架构都已启用。
    VStudio - 15.5.4,.NET - 4.7.03056,Xamarin - 4.8.0.757,Xamarin.Android SDK - 8.1.3.0。

    今天(2018-06-01)我更加关注设备日志输出,并发现以下几行(当然其中许多来自我的流程!):

    public function findEmail($email) {
       return $this->where('email', $email)->firstOrFail();
    }
    

    我只是发现了这些搜索' J7980ca' - 项目名。我很乐意包含完整的捕获,但它们占用了太多空间。有没有办法上传类似图像的文本文件?

    奇怪的是,在虚假死亡之后(即使没有对原始PID的引用?!),看起来好像应用程序正在重新加载?在VStudio停止调试后,我暂停了15秒的记录,没有更多的条目明确提到我的项目或它的类。

2 个答案:

答案 0 :(得分:0)

我会使用模拟器进行虚拟测试,并使用此技术创建手机图像:Run a full android phone rom on the Android Emulator

通过这种方式,您可以“消除”中兴通讯硬件,并可能使用仿真器图像进行更好的调试。

注意:升级到Visual Studio 15.7.3并更新Xamarin后,我的应用程序不再在模拟器中启动。我不得不手动删除“Mono共享运行时”和“Xamarin.Android API-xx支持”并持续删除我安装的应用程序。完成了应用程序的重建和新的部署后,它在此之后被罚款。

还建议在没有共享运行时的情况下尝试部署,删除签入属性 - > Android选项 - >使用共享运行时

如果你仍然被困住;去海滩检查中兴通讯是否漂浮;)

答案 1 :(得分:0)

嗯,我意外地发现,一旦中兴通讯从USB线缆中脱钩,应用程序就会正常加载。将手机插回并尝试从VStudio运行应用仍会导致“过程中的虚假死亡......”,没有任何有用的线索。 但是再次拔掉插头似乎可以恢复应用的运行能力

我唯一的解释是调试器的存在在某种程度上是不受欢迎的?!

但我会接受这一点,因为它允许我将下一个开发构建部署到手机上并运行它不插电。