2

我正在 HTC 平板电脑上调试 Android 应用程序,每次卸载该应用程序时,设备都会重新启动。卸载也是尝试新版本的一部分,因此对应用程序的任何更改都需要在测试前重新启动。可以预见,这会加剧发展。

这个问题听起来与这里描述的相似,只是在我的案例中没有什么神秘之处。卸载 => 重新启动。通过 Eclipse & adb => 重新启动更改应用程序和调试。按照类似问题的唯一答案中的建议擦除设备上的所有数据是不可取的,特别是因为没有太多迹象表明即使是该海报也没有将其视为牺牲鸡的技术等价物。

谁能告诉我为什么会发生这种情况以及如何预防?

4

1 回答 1

1

我没有提供这个作为答案(至少现在还没有),但需要更多的空间而不是评论提供的关于如何调查这个问题的集思广益

我很想采用一个安全的“hello world”类型的应用程序并将其作为自己的活动合并到项目中。然后从 manifest 和 java 文件中注释掉所有真正的功能。那应该只留下你好世界和资源。查看设备是否在运行后卸载它 - 如果没有,猜测您可能不得不怀疑资源。

这应该做评论 - 或者你可以从树中批量删除文件

find  . -name "*.java" | xargs -I f sed -i 's/^/\/\//' f

(一些编辑器会阻止注释/取消注释,emacs 会对文件的列进行任意操作。)

然后,我要么取消注释实际活动的框架——即所有 onCreate、onStart 等方法,其中没有任何操作,然后将该活动恢复到清单。否则我会恢复功能性 Java 代码,但将活动排除在清单之外。然后,您可以逐步添加越来越多的功能,直到崩溃。

如果你有任何 ndk 库甚至 java 库,你可以用它们玩类似的游戏。

您还可以尝试在卸载期间运行 logcat,并查看在设备挂断您之前是否有任何消息。

哦 - 还有一个主要问题,这是内核重启还是 android 运行时重启?在后一种情况下,adb & logcat 应该可以存活,并且 /proc/uptime 不会被重置为一个小数字。

如果你把它归结为一个可疑的操作,如果你能发布一个描述,那就太好了——我的测试集合中有一个类似的设备,很想看看它是否有同样的明显错误。HTC 也有许多“开发人员布道者”,他们可能是一个联系人。

于 2012-05-04T02:44:57.627 回答