我们收到了一堆用于集体测试的新手机。目前,要在设备上部署/安装应用程序,我只需通过USB电缆将其连接到开发计算机并从VisualStudio运行应用程序。
嗯,这些ZTE Z798BL(Android 6.0.1)完全出乎意料:
没有例外,没有错误,没有"不幸的是......"电话上的消息。再试一次没有影响。在第一行代码上设置断点没有任何影响。尝试单步执行(使用[F11]而不是[F5])没有任何影响 - 应用程序在到达我的代码之前就会终止。
启动尝试期间的设备日志充满了来自各地的大量 shtuff :
一时兴起,我带了一台新的Google Pixel手机,该手机尚未与开发电脑进行USB连接。插入,启用USB调试,在VisualStudio中选择它(仍然在同一个会话中 - 没有重新启动,没有重新启动!),单击“运行”,并在“输出”窗口中显示常规构建操作后..瞧:这是第一次在Pixel上完美运行的应用!
接下来我试了一个ActivityLifecycle样本。它做了同样的事情:"活动A"没有按钮的标题在手机上闪烁并立即消失,没有任何错误或例外。我改为:
User.php
导致标题更改为"活动A Z "但是我仍然无法单步执行中兴通讯上的任何代码!
如果不针对任何细节定位,该应用会在以下设备/ Android版本上运行:
因此,我的猜测是 - 这与中兴通讯设备本身有关。 我们得到了很多人,所以我接下一个...... 每个人的行为方式相同! 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秒的记录,没有更多的条目明确提到我的项目或它的类。
答案 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运行应用仍会导致“过程中的虚假死亡......”,没有任何有用的线索。 但是再次拔掉插头似乎可以恢复应用的运行能力。
我唯一的解释是调试器的存在在某种程度上是不受欢迎的?!
但我会接受这一点,因为它允许我将下一个开发构建部署到手机上并运行它不插电。