1

懐中電灯を使用すると、トーチクラスledon()がオンになります。使っledoff()たら切れます。しかし、もう一度オンにしようとすると、力が入ります。そして、試してみると再びオンになります。

強制終了の理由は何ですか?

import android.hardware.Camera;
import android.util.Log;

import static android.hardware.Camera.*;

/**
* Created by tyler on 8/13/13.
*/
public class Torch {
    private static final String TAG = "Light";
    private static Camera mCamera;
    private static Camera.Parameters mParameters;

    public static Camera getCameraInstance() {
        Camera c = null;
        try {
            c = open();
        } catch (Exception e) {
        }
        return c;
    }

    public static void ledon()
    {
        mCamera = getCameraInstance();
        mParameters = mCamera.getParameters();
        mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
        mCamera.setParameters(mParameters);
        Log.d(TAG, "Turn On");
    }

    public static void ledoff(MainActivity activity) {       
        String flashMode = mParameters.getFlashMode();

        if (Camera.Parameters.FLASH_MODE_OFF.equals(flashMode)) {
            mCamera = getCameraInstance();
        }

        mParameters = mCamera.getParameters();
        mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        mCamera.setParameters(mParameters);
        Log.d(TAG, "Turn Off");
    }
}

編集:これが私の更新されたコードです。それは私が望むすべてをオフにしてオンにしますが、オンにしてから再度オンにすると、強制的に閉じます。以下のコードの Logcat。

import android.hardware.Camera;
import android.util.Log;

/**
* Created by tyler on 8/13/13.
*/
public class Torch {

private static final String TAG =  "Light";
private static Camera mCamera;
private static Camera.Parameters mParameters;
public static Camera getCameraInstance() {
    Camera c = null;
        try {
            c = mCamera.open();
        } catch (Exception e) {
    }
    return c;

}


public static void ledon() {

        mCamera = getCameraInstance();
        mParameters = mCamera.getParameters();
        String flashMode = mParameters.getFlashMode();
            if (! flashMode.equals(Camera.Parameters.FLASH_MODE_TORCH)) {
            mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            mCamera.setParameters(mParameters);
            Log.d(TAG, "Turn On"); 
        }
    }
public static void ledoff() {
        String flashMode = mParameters.getFlashMode();
            if (! flashMode.equals(Camera.Parameters.FLASH_MODE_OFF)) {
            mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
            mCamera.setParameters(mParameters);
            mCamera.release();
            Log.d(TAG, "Turn Off");
        }

    }
}

ログキャット:

08-15 12:01:10.502 25951-25951/com.tyler.myapp W/dalvikvm: threadid=1: キャッチされない例外で終了するスレッド (group=0x4170f898) 08-15 12:01:10.522 25951-25951/com.tyler .myapp E/AndroidRuntime: 致命的な例外: com.tyler.myapp.Torch.ledon(Torch.java:28) でメインの java.lang.NullPointerException

4

2 に答える 2