Java android上的应用程序崩溃

Java android上的应用程序崩溃,java,android,Java,Android,我是一名新开发人员,在设置覆盖UI的布局的可见性以在运行脚本时禁用它时遇到了一个问题 这是我的密码: @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long //

我是一名新开发人员,在设置覆盖UI的布局的可见性以在运行脚本时禁用它时遇到了一个问题

这是我的密码:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.

    switch (item.getItemId()) {
        case R.id.action_settings:
            return true;

        case R.id.action_loadfile:
            saveTellNamesArray();
            LoadFile(txtFolder, ScriptArray);
            return true;

        case R.id.action_runscript:

            disableLayout();

            stopScript = false;

            scriptThread = new Thread(new Runnable() {
                @Override
                public void run() {
                    while (!scriptThread.isInterrupted() && !stopScript) {
                        runScript();
                    }
                    if (stopScript)//revisar
                        enableLayout();
                }
            });
            scriptThread.start();

            //enableLayout();
            return true;

        case R.id.action_stopscript:
            if (scriptThread != null) {
                //scriptThread.interrupt();
                stopScript = true;
            }
            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
}
问题是,只要我调用enableLayout()函数,应用程序就会崩溃:

public void disableLayout() {
    uiBlockLayout.setVisibility(FrameLayout.VISIBLE);
    uiBlockLayout.bringToFront();
}

public void enableLayout() {
    uiBlockLayout.setVisibility(FrameLayout.GONE);
}
有没有关于问题可能是什么的线索

有没有关于问题可能是什么的线索

是,从
非UI线程
访问UI元素时出现问题(调用
启用布局
方法
脚本线程
线程运行方法)

使用
runOnUiThread
方法从非Ui线程访问视图:

if (stopScript){
   runOnUiThread(new Runnable() {
     @Override
     public void run() {
        enableLayout();
    }
  });
}

请分享日志错误。Nawako所说的,加上
uiBlockLayout
被赋值的范围。谢谢大家,@ρ∑ѕρєK给出的答案是正确的。谢谢您的时间。@Mena什么取决于API级别?runOnUiThread从API开始就存在1@Sombrero22请检查这个答案,它肯定会解决你的问题。别忘了标上正确答案!谢谢你,你的答案是正确的。没想到会有这么快的反应,这么高兴这个网站存在。继续做好工作