在重新/卸载应用程序时防止Android设备重新启动

在重新/卸载应用程序时防止Android设备重新启动,android,eclipse,adb,Android,Eclipse,Adb,我正在HTC平板电脑上调试Android应用程序,每次我卸载该应用程序时,设备都会重新启动。卸载也是尝试新构建的一部分,因此对应用程序的任何更改都需要在测试前重新启动。可以预见,这会加剧发展 这个问题听起来很相似,只是在我的案例中没有什么神秘之处。卸载=>重新启动。通过Eclipse&adb=>reboot更改应用程序并调试。按照对类似问题的唯一答案中的建议,擦除设备上的所有数据是不可取的,尤其是因为没有太多迹象表明,即使是海报也将其视为牺牲一只鸡的技术等价物 有人能告诉我为什么会发生这种情况以

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

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

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

我不想回答这个问题(至少现在还没有),但需要比评论更多的空间来集体讨论如何调查这个问题

我会尝试使用一个安全的“hello world”类型的应用程序,并将其作为自己的活动合并到项目中。然后从清单和java文件中注释掉所有真正的功能。这应该只剩下hello world和资源。查看设备是否能够在运行后卸载,如果不能,您可能不得不怀疑资源

这应该可以进行注释,或者您可以从树中整体删除文件

find  . -name "*.java" | xargs -I f sed -i 's/^/\/\//' f
(一些编辑器将执行块注释/取消注释,emacs将对文件的一列执行任意操作。)

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

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

您还可以尝试在卸载过程中运行logcat,查看是否有任何消息在设备挂起之前发出

哦,还有一个主要问题,这是内核重启还是android运行时重启?在后一种情况下,adb和logcat可能会继续存在,并且/proc/uptime不会重置为一个小数字


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

如果以不同的方式卸载HTC,会有什么不同吗?i、 e.ADB或在设备端手动。通过拖动到垃圾箱手动卸载和adb卸载都会导致重新启动。它是什么设备?当你卸载其他程序时,它会重新启动吗?或者仅仅是你正在开发的一款?它是一款运行安卓3.2.1的HTC Flyer P510e。我测试过的其他应用程序在不重新启动的情况下卸载。首先,这不是你的错,不过如果你有详细的了解,你可能会找到解决办法。该应用程序执行什么样的操作?它出版了吗?你能制作一个仍然崩溃的最小版本来发布吗?如果您在没有运行的情况下安装和卸载,它会崩溃吗?设备是否为库存,没有mods/根?谢谢您的帮助!对更改的主要测试将不得不等到下周,但我会在获得任何新信息后进行更新。你修复了问题吗?