为什么我得到错误“通道是不可恢复的破碎,将被处置!

当我尝试启动我的AndEngine活动时 ,出现此错误:

ERROR/InputDispatcher(21374): channel '4122e148 my.package.AcGame (server)' ~ Channel is unrecoverably broken and will be disposed! 

该应用程序不会崩溃,但有一个黑色的屏幕,设备不响应​​按“后退”或“家”button。

有谁知道问题是什么?

我发现错误的最常见原因之一是当我尝试在不在前台的活动中显示警告对话框或进度对话框时。 就像显示对话框的后台线程正在暂停的活动中运行一样。

我认为你有内存泄漏的地方。 您可以在这里find提示以避免内存泄漏。 你也可以学习工具在这里跟踪它。

你可以在这里看到关于这个输出的源代码:

 void InputDispatcher::onDispatchCycleBrokenLocked( nsecs_t currentTime, const sp<Connection>& connection) { ALOGE("channel '%s' ~ Channel is unrecoverably broken and will be disposed!", connection->getInputChannelName()); CommandEntry* commandEntry = postCommandLocked( & InputDispatcher::doNotifyInputChannelBrokenLockedInterruptible); commandEntry->connection = connection; } 

这是周期被破坏的原因…

我得到类似的错误(我的应用程序崩溃)后,我想在strings.xml中的东西,忘记修改其他文件(首选XML资源文件和Java代码)。 IDE(android studio)不显示任何错误。 修复XML文件和Java代码后,应用程序运行正常。 也许在你的XML文件或常量中有一些小的错误。

你有没有使用UI新线程? 不要使用UI新线程看起来像三明治。 它应该导致内存泄漏。

我在两天前遇到同样的麻烦,我现在就解决了。我是台湾人,我很高兴再次来这里回答。

在一个简短的句子中,一个主线程可以有很多UI线程来做很多工作,但是如果一个子线程(而不是主线程)在内部拥有一个UI线程,可能子线程工作已经完成,但是它的子线程没有完成工作这会造成内存泄漏。

例如…对于片段和UI应用程序…这将导致内存泄漏。

 getActivity().runOnUiThread(new Runnable(){ public void run() {//No.1 ShowDataScreen(); getActivity().runOnUiThread(new Runnable(){ public void run() {//No.2 Toast.makeText(getActivity(), "This is error way",Toast.LENGTH_SHORT).show(); }});// end of No.2 UI new thread }});// end of No.1 UI new thread 

我的解决scheme是重新排列如下:

 getActivity().runOnUiThread(new Runnable(){ public void run() {//No.1 ShowDataScreen(); }});// end of No.1 UI new thread getActivity().runOnUiThread(new Runnable(){ public void run() {//No.2 Toast.makeText(getActivity(), "This is correct way",Toast.LENGTH_SHORT).show(); }});// end of No.2 UI new thread 

供你参考。

我也有同样的问题。 在我的情况是当试图复制编码差的video(需要太多的内存)时造成的。 这帮助我赶上错误,并要求另一个版本的同一个video。 https://stackoverflow.com/a/11986400/2508527

我有同样的问题,但我是由于Android数据库内存泄漏。 我跳过一个游标。 所以设备崩溃,以解决内存泄漏。 如果您正在使用Android数据库,请检查从数据库中检索时是否跳过了游标

在使用引擎运行游戏时,也发生了这种情况。 在我将下面的代码添加到我的manifest.xml后,它被修复了。 这个代码应该被添加到你的mainactivity。

 android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|mcc|mnc" 

我有同样的问题。 矿是由于第三个jar子,但logcat没有捕获exception,我通过更新第三个jar子解决,希望这些将帮助。

我有同样的问题。 要解决该错误:在模拟器上closures它,然后使用Android Studio运行它。

当应用程序已在仿真器上运行时尝试重新运行应用程序时,会发生错误。

基本上错误说 – “我没有现有的渠道,并configuration已build立的连接”,因为你已经从Android Studio再次运行应用程序。

通读所有的贡献,看起来像许多不同的来源显示导致相同的问题症状。

以我的情况为例 – 我一旦添加就遇到了这个问题

 android:progressBackgroundTintMode="src_over" 

到我的进度条属性。 我认为ADT的GUIdevise者因为一些错误而闻名。 因此,我认为这是其中之一。 因此,如果在使用GUI设置后遇到类似的问题症状(只是没有意义),只要尝试回滚所做的操作并撤销上次的GUI修改即可。

只需按屏幕上最近修改的文件按Ctrl + z。

要么:

版本控制工具可能会有所帮助。 打开版本控制面板 – select本地更改选项卡,并查看最近修改(也许.xml)文件。

右键点击一些最可疑的点击Show Diff。 那么就猜猜哪个修改后的行可能是负责任的。

祝你好运 :)

Interesting Posts