Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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 Android-threadid=11:线程以未捕获异常退出_Java_Android_Multithreading - Fatal编程技术网

Java Android-threadid=11:线程以未捕获异常退出

Java Android-threadid=11:线程以未捕获异常退出,java,android,multithreading,Java,Android,Multithreading,我正在开发一个应用程序,使用可控震源和闪光灯模拟电击枪。 这是我的密码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFra

我正在开发一个应用程序,使用可控震源和闪光灯模拟电击枪。 这是我的密码:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment()).commit();
        }
        Button btn = (Button) findViewById(R.id.button1);
        btn.setOnTouchListener(new View.OnTouchListener() {
            @Override 
            public boolean onTouch(View v, MotionEvent event) {
                switch(event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    var=false;
                    Electric();

                    break;
                case MotionEvent.ACTION_UP:
                    var=true;
                    Electric();
                    break;
                }
                return false;
            }
        });
    }
    Camera cam; 

    public void Electric(){
        Thread hola = new Thread(){
            public void run(){
                while (!var){
                    Vibrator Vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
                    long[] pattern = {50,100,50,200};
                    Vib.vibrate(pattern, 0);
                    try {

                        TimeUnit.MILLISECONDS.sleep(50);

                    } catch (InterruptedException e) {
                        //Handle exception
                    }
                    Parameters params = cam.getParameters();
                    params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    cam.setParameters(params);
                    try {

                        TimeUnit.MILLISECONDS.sleep(100);

                    } catch (InterruptedException e) {
                        //Handle exception
                    }
                    Parameters paramsOff = cam.getParameters();
                    paramsOff.setFlashMode(Parameters.FLASH_MODE_OFF);
                    cam.setParameters(paramsOff);
                    try {

                        TimeUnit.MILLISECONDS.sleep(50);

                    } catch (InterruptedException e) {
                        //Handle exception
                    }
                    cam.setParameters(params);
                    try {

                        TimeUnit.MILLISECONDS.sleep(200);

                    } catch (InterruptedException e) {
                        //Handle exception
                    }
                }
            }
        };
        if(!var){
            cam = Camera.open();     
            cam.startPreview();
            hola.start();
            }
        else{
            Toast.makeText(getApplicationContext(), "var true", 1000).show();
            Vibrator Vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            Vib.cancel();
            cam.stopPreview();
            cam.release();
            try{
                hola.interrupt();
            }
                catch(Exception e){

            }
        }
    }
此代码工作正常,但有时会崩溃,并在logCat中显示:

08-14 15:23:15.647: W/dalvikvm(26293): threadid=11: thread exiting with uncaught exception (group=0x41b73d40)
    08-14 15:23:15.648: E/AndroidRuntime(26293): FATAL EXCEPTION: Thread-3983
    08-14 15:23:15.648: E/AndroidRuntime(26293): Process: com.polito.electricweapon, PID: 26293
    08-14 15:23:15.648: E/AndroidRuntime(26293): java.lang.RuntimeException: Method called after release()
    08-14 15:23:15.648: E/AndroidRuntime(26293):    at android.hardware.Camera.native_getParameters(Native Method)
    08-14 15:23:15.648: E/AndroidRuntime(26293):    at android.hardware.Camera.getParameters(Camera.java:1706)
    08-14 15:23:15.648: E/AndroidRuntime(26293):    at com.polito.electricweapon.MainActivity$2.run(MainActivity.java:82)
我不明白为什么会发生这种情况,因为有时它有效,但有时无效。 我希望有人能帮我解决这个问题。
谢谢。

可能有用,请看这个重复的问题。->我还没有找到解决问题的办法,希望有人能帮我