Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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
Java 启动主活动时应用程序正在崩溃_Java_Android_Android Studio_Logcat - Fatal编程技术网

Java 启动主活动时应用程序正在崩溃

Java 启动主活动时应用程序正在崩溃,java,android,android-studio,logcat,Java,Android,Android Studio,Logcat,当我启动我的主要活动时,我的应用程序只是因为NullPointerException而崩溃 如何修复此错误 Logcat: java.lang.NullPointerException at com.zackercracker.todthealien.GamePanel.surfaceCreated(GamePanel.java:63) at android.view.SurfaceView.updateWindow(SurfaceView.java:569) at an

当我启动我的主要活动时,我的应用程序只是因为NullPointerException而崩溃

如何修复此错误

Logcat:

java.lang.NullPointerException
    at com.zackercracker.todthealien.GamePanel.surfaceCreated(GamePanel.java:63)
    at android.view.SurfaceView.updateWindow(SurfaceView.java:569)
    at android.view.SurfaceView.access$000(SurfaceView.java:86)
    at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:174)
    at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:680)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1842)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
    at android.view.Choreographer.doCallbacks(Choreographer.java:562)
    at android.view.Choreographer.doFrame(Choreographer.java:532)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
    at android.os.Handler.handleCallback(Handler.java:725)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5041)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    at dalvik.system.NativeStart.main(Native Method)
我的主要活动课程:

import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

import java.util.ArrayList;
import java.util.Random;


public class GamePanel extends SurfaceView implements SurfaceHolder.Callback {
public static final int WIDTH = 960;
public static final int HEIGHT = 540;
public static final int MoveSpeed = -3;
private long enemyStartTime;
public MainThread thread;
private Background bg;
private Alien alien;
private ArrayList<Enemy> enemy;
private Random rand = new Random();

public GamePanel(Context context) {
    super(context);

    getHolder().addCallback(this);

    setFocusable(true);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int wight, int height) {
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

    boolean retry = true;
    while (retry) {
        try {
            thread.setRunning(false);
            thread.join();
            retry = false;
            thread = null;

        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

@Override
public void surfaceCreated(SurfaceHolder holder) {

    bg = new Background(BitmapFactory.decodeResource(getResources(), R.drawable.backgrounda));

    enemy = new ArrayList<>();
    long EnemyElapsed = (System.nanoTime() - enemyStartTime) / 1000000;
    if (EnemyElapsed > (2000 - alien.getScore() / 4)) {
        switch ((int) (rand.nextDouble() * 5)) {
            case 0:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.dog), WIDTH + 10, 60, 250, 250, alien.getScore(), 2));
                enemyStartTime = System.nanoTime();
                break;
            case 1:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hyd), WIDTH + 10, 60, 480, 270, alien.getScore(), 2));
                enemyStartTime = System.nanoTime();
                break;
            case 2:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hobo), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 3:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hole), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 4:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.baby), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 5:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.lightpaul), WIDTH + 10, 45, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
        }
    }

    for (int i = 0; i < enemy.size(); i++) {
        enemy.get(i).update();
        if (collision(enemy.get(i), alien)) ;
        {
            enemy.remove(i);
            break;
        }
    }


    thread = new MainThread(getHolder(), this);
    thread.setRunning(true);
    thread.start();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    return super.onTouchEvent(event);
}

public void update() {
    bg.update();
    alien.update();
    for (Enemy m : enemy) {
        m.update();
    }
}

public boolean collision(GameObject a, GameObject b) {
    return Rect.intersects(a.getRectangel(), b.getRectangel());
}

public void draw(@NonNull Canvas canvas) {
    final float scaleFactoryX;
    scaleFactoryX = getWidth() / (WIDTH * 1.f);
    final float scaleFactoryY;
    scaleFactoryY = getHeight() / (HEIGHT * 1.f);
    final int savedState = canvas.save();
    canvas.scale(scaleFactoryX, scaleFactoryY);
    bg.draw(canvas);
    alien.draw(canvas);
    for (Enemy m : enemy) {
        m.draw(canvas);
    }
    canvas.restoreToCount(savedState);

}
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

import java.util.ArrayList;
import java.util.Random;


public class GamePanel extends SurfaceView implements SurfaceHolder.Callback {
public static final int WIDTH = 960;
public static final int HEIGHT = 540;
public static final int MoveSpeed = -3;
private long enemyStartTime;
public MainThread thread;
private Background bg;
private Alien alien;
private ArrayList<Enemy> enemy;
private Random rand = new Random();

public GamePanel(Context context) {
    super(context);

    getHolder().addCallback(this);

    setFocusable(true);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int wight, int height) {
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

    boolean retry = true;
    while (retry) {
        try {
            thread.setRunning(false);
            thread.join();
            retry = false;
            thread = null;

        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

@Override
public void surfaceCreated(SurfaceHolder holder) {

    bg = new Background(BitmapFactory.decodeResource(getResources(), R.drawable.backgrounda));

    enemy = new ArrayList<>();
    long EnemyElapsed = (System.nanoTime() - enemyStartTime) / 1000000;
    if (EnemyElapsed > (2000 - alien.getScore() / 4)) {
        switch ((int) (rand.nextDouble() * 5)) {
            case 0:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.dog), WIDTH + 10, 60, 250, 250, alien.getScore(), 2));
                enemyStartTime = System.nanoTime();
                break;
            case 1:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hyd), WIDTH + 10, 60, 480, 270, alien.getScore(), 2));
                enemyStartTime = System.nanoTime();
                break;
            case 2:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hobo), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 3:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hole), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 4:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.baby), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 5:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.lightpaul), WIDTH + 10, 45, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
        }
    }

    for (int i = 0; i < enemy.size(); i++) {
        enemy.get(i).update();
        if (collision(enemy.get(i), alien)) ;
        {
            enemy.remove(i);
            break;
        }
    }


    thread = new MainThread(getHolder(), this);
    thread.setRunning(true);
    thread.start();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    return super.onTouchEvent(event);
}

public void update() {
    bg.update();
    alien.update();
    for (Enemy m : enemy) {
        m.update();
    }
}

public boolean collision(GameObject a, GameObject b) {
    return Rect.intersects(a.getRectangel(), b.getRectangel());
}

public void draw(@NonNull Canvas canvas) {
    final float scaleFactoryX;
    scaleFactoryX = getWidth() / (WIDTH * 1.f);
    final float scaleFactoryY;
    scaleFactoryY = getHeight() / (HEIGHT * 1.f);
    final int savedState = canvas.save();
    canvas.scale(scaleFactoryX, scaleFactoryY);
    bg.draw(canvas);
    alien.draw(canvas);
    for (Enemy m : enemy) {
        m.draw(canvas);
    }
    canvas.restoreToCount(savedState);

}
导入android.content.Context;
导入android.graphics.BitmapFactory;
导入android.graphics.Canvas;
导入android.graphics.Rect;
导入android.support.annotation.NonNull;
导入android.view.MotionEvent;
导入android.view.SurfaceHolder;
导入android.view.SurfaceView;
导入java.util.ArrayList;
导入java.util.Random;
公共类GamePanel扩展了SurfaceView实现了SurfaceHolder.Callback{
公共静态最终整数宽度=960;
公共静态最终内部高度=540;
公共静态最终移动速度=-3;
私人长期敌对;
公共主线程;
私人背景背景背景;
私人外侨;
私人ArrayList敌人;
private Random rand=new Random();
公共游戏面板(上下文){
超级(上下文);
getHolder().addCallback(此);
设置聚焦(真);
}
@凌驾
公共空白表面更改(表面文件夹持有者,整数格式,整数宽度,整数高度){
}
@凌驾
公共空间表面覆盖(表面覆盖物持有人){
布尔重试=真;
while(重试){
试一试{
thread.setRunning(false);
thread.join();
重试=错误;
线程=null;
}捕捉(中断异常e){
e、 printStackTrace();
}
}
}
@凌驾
已创建的公共空白表面(表面持有人){
bg=新背景(BitmapFactory.decodeResource(getResources(),R.drawable.backgrounda));
敌人=新阵列列表();
long-enemyelased=(System.nanoTime()-enemyStartTime)/1000000;
如果(enemyelased>(2000-alien.getScore()/4)){
开关((int)(rand.nextDouble()*5)){
案例0:
添加(新敌人(BitmapFactory.decodeResource(getResources(),R.drawable.dog),宽度+10,60250250,外星人.getScore(),2));
enemyStartTime=System.nanoTime();
打破
案例1:
添加(新敌人(BitmapFactory.decodeResource(getResources(),R.drawable.hyd),宽度+10,60480,270,外星人.getScore(),2));
enemyStartTime=System.nanoTime();
打破
案例2:
添加(新敌人(BitmapFactory.decodeResource(getResources(),R.drawable.hobo),宽度+10,60580370,alien.getScore(),1));
enemyStartTime=System.nanoTime();
打破
案例3:
添加(新敌人(BitmapFactory.decodeResource(getResources(),R.drawable.hole),宽度+10,60580370,alien.getScore(),1));
enemyStartTime=System.nanoTime();
打破
案例4:
添加(新敌人(BitmapFactory.decodeResource(getResources(),R.drawable.baby),宽度+10,60580370,alien.getScore(),1));
enemyStartTime=System.nanoTime();
打破
案例5:
添加(新敌人(BitmapFactory.decodeResource(getResources(),R.drawable.lightpaul),宽度+10,45580370,alien.getScore(),1));
enemyStartTime=System.nanoTime();
打破
}
}
对于(int i=0;i<敌方.size();i++){
敌方.get(i).update();
if(碰撞(敌方获取(i),外星));
{
敌人。移除(i);
打破
}
}
线程=新的主线程(getHolder(),this);
thread.setRunning(true);
thread.start();
}
@凌驾
公共布尔onTouchEvent(运动事件){
返回super.onTouchEvent(事件);
}
公共无效更新(){
bg.update();
alien.update();
for(敌人m:敌人){
m、 更新();
}
}
公共布尔冲突(游戏对象a、游戏对象b){
return Rect.intersects(a.getRectangle(),b.getRectangle());
}
公共空白绘制(@NonNull画布){
最终浮动比例系数yx;
scaleFactoryX=getWidth()/(宽度*1.f);
最终浮动比例系数yy;
scaleFactoryY=getHeight()/(HEIGHT*1.f);
final int savedState=canvas.save();
scale(scaleFactoryX,scaleFactoryY);
背景绘画(画布);
外星人。画(画布);
for(敌人m:敌人){
m、 绘画(画布);
}
canvas.restoreToCount(savedState);
}
我的游戏面板类:

import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

import java.util.ArrayList;
import java.util.Random;


public class GamePanel extends SurfaceView implements SurfaceHolder.Callback {
public static final int WIDTH = 960;
public static final int HEIGHT = 540;
public static final int MoveSpeed = -3;
private long enemyStartTime;
public MainThread thread;
private Background bg;
private Alien alien;
private ArrayList<Enemy> enemy;
private Random rand = new Random();

public GamePanel(Context context) {
    super(context);

    getHolder().addCallback(this);

    setFocusable(true);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int wight, int height) {
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

    boolean retry = true;
    while (retry) {
        try {
            thread.setRunning(false);
            thread.join();
            retry = false;
            thread = null;

        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

@Override
public void surfaceCreated(SurfaceHolder holder) {

    bg = new Background(BitmapFactory.decodeResource(getResources(), R.drawable.backgrounda));

    enemy = new ArrayList<>();
    long EnemyElapsed = (System.nanoTime() - enemyStartTime) / 1000000;
    if (EnemyElapsed > (2000 - alien.getScore() / 4)) {
        switch ((int) (rand.nextDouble() * 5)) {
            case 0:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.dog), WIDTH + 10, 60, 250, 250, alien.getScore(), 2));
                enemyStartTime = System.nanoTime();
                break;
            case 1:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hyd), WIDTH + 10, 60, 480, 270, alien.getScore(), 2));
                enemyStartTime = System.nanoTime();
                break;
            case 2:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hobo), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 3:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hole), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 4:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.baby), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 5:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.lightpaul), WIDTH + 10, 45, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
        }
    }

    for (int i = 0; i < enemy.size(); i++) {
        enemy.get(i).update();
        if (collision(enemy.get(i), alien)) ;
        {
            enemy.remove(i);
            break;
        }
    }


    thread = new MainThread(getHolder(), this);
    thread.setRunning(true);
    thread.start();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    return super.onTouchEvent(event);
}

public void update() {
    bg.update();
    alien.update();
    for (Enemy m : enemy) {
        m.update();
    }
}

public boolean collision(GameObject a, GameObject b) {
    return Rect.intersects(a.getRectangel(), b.getRectangel());
}

public void draw(@NonNull Canvas canvas) {
    final float scaleFactoryX;
    scaleFactoryX = getWidth() / (WIDTH * 1.f);
    final float scaleFactoryY;
    scaleFactoryY = getHeight() / (HEIGHT * 1.f);
    final int savedState = canvas.save();
    canvas.scale(scaleFactoryX, scaleFactoryY);
    bg.draw(canvas);
    alien.draw(canvas);
    for (Enemy m : enemy) {
        m.draw(canvas);
    }
    canvas.restoreToCount(savedState);

}
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

import java.util.ArrayList;
import java.util.Random;


public class GamePanel extends SurfaceView implements SurfaceHolder.Callback {
public static final int WIDTH = 960;
public static final int HEIGHT = 540;
public static final int MoveSpeed = -3;
private long enemyStartTime;
public MainThread thread;
private Background bg;
private Alien alien;
private ArrayList<Enemy> enemy;
private Random rand = new Random();

public GamePanel(Context context) {
    super(context);

    getHolder().addCallback(this);

    setFocusable(true);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int wight, int height) {
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

    boolean retry = true;
    while (retry) {
        try {
            thread.setRunning(false);
            thread.join();
            retry = false;
            thread = null;

        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

@Override
public void surfaceCreated(SurfaceHolder holder) {

    bg = new Background(BitmapFactory.decodeResource(getResources(), R.drawable.backgrounda));

    enemy = new ArrayList<>();
    long EnemyElapsed = (System.nanoTime() - enemyStartTime) / 1000000;
    if (EnemyElapsed > (2000 - alien.getScore() / 4)) {
        switch ((int) (rand.nextDouble() * 5)) {
            case 0:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.dog), WIDTH + 10, 60, 250, 250, alien.getScore(), 2));
                enemyStartTime = System.nanoTime();
                break;
            case 1:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hyd), WIDTH + 10, 60, 480, 270, alien.getScore(), 2));
                enemyStartTime = System.nanoTime();
                break;
            case 2:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hobo), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 3:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.hole), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 4:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.baby), WIDTH + 10, 60, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
            case 5:
                enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.lightpaul), WIDTH + 10, 45, 580, 370, alien.getScore(), 1));
                enemyStartTime = System.nanoTime();
                break;
        }
    }

    for (int i = 0; i < enemy.size(); i++) {
        enemy.get(i).update();
        if (collision(enemy.get(i), alien)) ;
        {
            enemy.remove(i);
            break;
        }
    }


    thread = new MainThread(getHolder(), this);
    thread.setRunning(true);
    thread.start();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    return super.onTouchEvent(event);
}

public void update() {
    bg.update();
    alien.update();
    for (Enemy m : enemy) {
        m.update();
    }
}

public boolean collision(GameObject a, GameObject b) {
    return Rect.intersects(a.getRectangel(), b.getRectangel());
}

public void draw(@NonNull Canvas canvas) {
    final float scaleFactoryX;
    scaleFactoryX = getWidth() / (WIDTH * 1.f);
    final float scaleFactoryY;
    scaleFactoryY = getHeight() / (HEIGHT * 1.f);
    final int savedState = canvas.save();
    canvas.scale(scaleFactoryX, scaleFactoryY);
    bg.draw(canvas);
    alien.draw(canvas);
    for (Enemy m : enemy) {
        m.draw(canvas);
    }
    canvas.restoreToCount(savedState);

}
导入android.content.Context;
导入android.graphics.BitmapFactory;
导入android.graphics.Canvas;
导入android.graphics.Rect;
导入android.support.annotation.NonNull;
导入android.view.MotionEvent;
导入android.view.SurfaceHolder;
导入android.view.SurfaceView;
导入java.util.ArrayList;
导入java.util.Random;
公共类GamePanel扩展了SurfaceView实现了SurfaceHolder.Callback{
公共静态最终整数宽度=960;
公共静态最终内部高度=540;
公共静态最终移动速度=-3;
私人长期敌对;
公共主线程;
私人背景背景背景;
私人外侨;
私人ArrayList敌人;
private Random rand=new Random();
公共游戏面板(上下文){
超级(上下文);
getHolder().addCallback(此);
设置聚焦(真);
}
@凌驾
公共空白表面更改(表面文件夹持有者,整数格式,整数宽度,整数高度){
}
@凌驾
公共空间表面覆盖(表面覆盖物持有人){
布尔重试=真;
while(重试){
试一试{
thread.setRunning(false);
thread.join();
重试=错误;
线程=null;
}捕捉(中断异常e){
e、 printStackTrace();
}
}
}
@凌驾
已创建的公共空白表面(表面持有人){
bg=新背景(BitmapFactory.decodeResource(getResources(),R.drawable.backgrounda));
敌人=新阵列列表();
long-enemyelased=(System.nanoTime()-enemyStartTime)/1000000;
如有失效