gpt4 book ai didi

android - Android模拟器调试报错: black screen

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:26 25 4
gpt4 key购买 nike

我在尝试调试下一段代码时发现了一个问题:

package course.examples.theanswer;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class TheAnswer extends Activity {

public static final int[] answers = { 42, -10, 0, 100, 1000 };
public static final int answer = 42;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.answer_layout);

TextView answerView = (TextView) findViewById(R.id.answer_view);

int val = findAnswer();
String output = (val == answer) ? "42" : "We may never know";
answerView.setText("The answer to life, the universe and everything is:\n\n"
+ output);
}

private int findAnswer() {
for (int val : answers) {
if (val == answer)
return val;
}
return -1;
}

我在 "int val = findAnswer();" 行中插入了一个断点,也就是说,在应用程序执行消息之前(“The answer to life... ”)。所以,模拟器显示带有标题的白屏,这是正确的,但是当它经过大约 10 秒时,屏幕变黑......并且 logCat 显示下一条消息:

01-23 05:57:29.995: I/System.out(2009): waiting for debugger to settle...
01-23 05:57:30.205: I/System.out(2009): debugger has settled (1309)
01-23 05:57:30.845: D/dalvikvm(2009): threadid=1: still suspended after undo (sc=1 dc=1)
01-23 05:57:37.825: W/ActivityManager(1254): Launch timeout has expired, giving up wake lock!
01-23 05:57:37.835: E/WindowManager(1254): Starting window AppWindowToken{b33e2a00 token=Token{b3344b58 ActivityRecord{b317b130 u0 course.examples.theanswer/.TheAnswer t10}}} timed out

最后的消息是屏幕变黑。我不能发布图片,但模拟器只显示:小时、网络和电池。此外,如果我按下“恢复”按钮,应用程序会正常运行。但是,我认为这不是主意。它应该以白屏停止以继续调试......(我想,但我不确定)。正常吗?

谁能帮帮我?

谢谢

最佳答案

解释很简单,但我不知道如何改变这种行为:

当 Android 应用程序运行时,主线程应处理所有传入消息(来自 GUI 和其他内部消息)。严禁使用主线程进行长时间的操作,因为此时线程被阻塞,无法处理消息。

当您启动应用程序时,Android 会为应用程序提供 10 秒的启动时间。之后它期望该应用程序可以处理消息。

现在解决你的问题:

您在 onCreate(..) 中设置了一个断点,这是一个由主线程调用的方法 - 一个不应被阻塞的线程。设置断点只是中断/阻塞线程,直到您按下恢复。因此,在 10 秒后,Android 系统(不受您的调试器影响)期望应用程序完成启动。但是主线程还是被断点困住了!因此 Android 认为该应用程序启动失败并停止负责 GUI 的某些部分。

我看到的唯一解决方案是禁用此“启动超时”——但我不知道这是否可行或如何可行。

关于android - Android模拟器调试报错: black screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21306386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com