Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序在调试模式下启动时崩溃_Android_Android Studio_Debugging_Android Debug_Android Debugging - Fatal编程技术网

Android应用程序在调试模式下启动时崩溃

Android应用程序在调试模式下启动时崩溃,android,android-studio,debugging,android-debug,android-debugging,Android,Android Studio,Debugging,Android Debug,Android Debugging,当我在调试模式下运行时,应用程序会崩溃,但当我正常运行时,它会工作。 我认为问题发生在附加调试器时 日志: 对我来说,它发生在嵌套函数中有断点时。在我的例子中,它位于Runnable.run(){}中。不确定它是否发生在其他嵌套函数中 例如: public class TouchEvent { public boolean HandleEvent(MotionEvent Event) { new Runnable() { @Override public void run

当我在调试模式下运行时,应用程序会崩溃,但当我正常运行时,它会工作。 我认为问题发生在附加调试器时

日志:


对我来说,它发生在嵌套函数中有断点时。在我的例子中,它位于
Runnable.run(){}
中。不确定它是否发生在其他嵌套函数中

例如:

public class TouchEvent {
    public boolean HandleEvent(MotionEvent Event) {
        new Runnable() { @Override public void run() {
            int i=5;
            i++;
        }};
    }
}
如果run()funct中的任何一行上有断点,它将崩溃,并出现错误
a/art:art/runtime/jdwp/jdwp_event.cc:661]检查失败:Thread::Current()!=GetDebugThread()(线程::当前()=0x#######,GetDebugThread()=0x##########)预期事件线程

此错误在第一次遇到类时发生,而不是在遇到断点时发生。因此,当我走进一行有
newtouchevent()的代码时,我就想到了这一点,在运行任何TouchEvent代码之前(在构造函数之前)

解决方案是删除断点(并将其放在其他位置)

编辑:

忘了提及,它似乎与API25有关,但也有API26和API27的报道

编辑:


另一个解决方案是禁用即时运行,但请注意下面的问题。

问题与Android 7.x版有关,我删除了嵌套函数中的所有断点,它工作了,也用Android 6.0版进行了测试,并且工作正常


根据谷歌开发者团队的回应,它已于2016年1月12日修复,并将在下一版本中应用。

在我的情况下,我不得不禁用Instant Run。即时运行似乎有各种各样的副作用,这可能是其中之一。

从Runable中删除断点。Run()为我解决了这个问题。我能够在运行时在Runable.run()中使用断点。但不是在编译时

这真的很奇怪,我禁用了Instant Run,问题自行解决了。

遇到了同样的问题,但我的断点是嵌套函数的第一行,所以如何将它移到别处

我创建了一个临时私有方法,并在函数中首先调用该方法,然后在该方法中设置断点


当我完成调试时,我删除了该方法及其调用。

我的问题是,我在import语句中有一个断点

我删除了所有断点,并使用Emulator Pixel API 25进行了测试

要删除所有断点,请执行以下操作:

  • 转到调试器选项

  • 单击下面的红色图标停止调试

  • 您将看到一个窗口,您可以删除所有断点


请参阅本文中的更多内容:

这是一个很长的过程,但对我来说,当我有一个import语句没有被使用,并且该import有运行网络调用的代码时,它对我来说崩溃了,但当删除它时,代码能够正常调试

仅在使用调试器启动时启动崩溃。重新启动Android Studio 2.3.2…不断崩溃。在运行模式下运行良好。我在onCreate之后立即输入了Log.d(),它解决了问题!算了吧

这是由于调试点存在一些问题。删除所有调试点,然后它就可以工作了

最简单的解决方案是尝试找到另一个设备或模拟器(感谢AVD管理器,我们有一个选择),该设备或模拟器将在没有解决办法的情况下发挥魅力

在窗口5:调试中,使用“查看断点”按钮

全部取消选择


删除我的应用程序上的所有调试点工作正常
您可以使用ctrl+shift+f6删除所有调试点

我的应用程序也只有在调试模式下才会崩溃。至于3.5版本,“即时运行”被替换为“应用更改”,所以我无法禁用它。我的解决方案是正常启动应用程序(使用绿色箭头),在应用程序崩溃后导航,然后将调试器连接到应用程序:

我不知道发生了什么事,但现在就去做吧。魔术我遇到了同样的问题,完全是废话。即使重新启动模拟器也无济于事。在删除了一堆代码,然后一次一块地阅读之后,我回到了原始代码,问题就解决了。我觉得类对象只需要重建。编译出错了。我猜一个“干净”的项目可能会修复它。差不多3年后,这个错误仍然存在。这已经在code.google.com上报道过了,我正在努力修复它。我有sdk 23和构建工具25.0.1-同样的问题。删除断点可以解决此问题。您也可以删除断点,按Debug,然后在应用程序运行确定后,将其重新添加到所需的位置。工作正常,然后,只记得删除它,然后再重新启动。我切换模拟器和问题消失-切换回原来的模拟器和问题回来。一旦问题出现,克服它的唯一方法(除了清除所有断点-不,谢谢)是禁用Instant Run。在问题模拟器上重新启用Instant Run会使问题再次出现。问题是7.1.1上的其他线程中的断点与Instant Run on的断点混合。请注意,在Android Studio中,文件->设置->构建、执行、部署->即时运行。这也是我的情况!谢谢:这是我一生中再也见不到的一个小时在多台机器上工作,随着谷歌不断地重新应用instant run,我需要它使我的效率提高大约4216%,当它最终工作时,我几乎可以远程找回失去的时间。非常感谢。应勾选为答案;)这个丑陋的功能给了你5美分,浪费了你100美元:))尽了一切可能,上面的评论有帮助!谢谢!它奏效了,这应该是可以接受的答案。谢谢此外,您还可以将Instant Run作为另一个解决方案删除。如果附加一个链接以支持此解决方案,那就太好了;)“手风琴
public class TouchEvent {
    public boolean HandleEvent(MotionEvent Event) {
        new Runnable() { @Override public void run() {
            int i=5;
            i++;
        }};
    }
}