私はラスベリーアンドロイドでテストUSBカメラのプレビューを試します。が発生NullPointerExceptionヌルオブジェクトリファレンスで仮想メソッドを呼び出そうとした
まず、私のラズベリーパイはアームプロセッサーです。
とusbカメラで問題ないデバイスです。
私はNullPointerException
を発生確認後、
Log.d(TAG,"Camera is connected?"+camera);
結果はそうCamera is connected?null
ではnullチェックをしてみてください、私はraspberry pi
はそれが検出できないようです だと思います。
MainActivity.class
public class MainActivity extends Activity implements SurfaceHolder.Callback {
Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfacehHolder;
@Override
protected void onCreate(Bundle savedInstanceState) {
.
.
getWindow().setFormat(PixelFormat.UNKNOWN);
surfaceView = (SurfaceView)findViewById(R.id.surfaceView);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
camera.stopPreview();
Camera.Parameters param = camera.getParameters();
param.setRotation(90);
camera.setParameters(param);
try {
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
} catch {
return;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
refreshCamera();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
camera = null;
}
public void refreshCamera() {
if (surfaceHolder.getSurface() = null) {
return ;
}
try {
camera.stopPreview();
} catch {
}
}
}
異なるデバイスでこのコードの成功作品。 (ないラズベリーPI) だけラズベリーPIデバイス、おそらく
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.stopPreview()' on a null object reference
at kr.c004245.dom.camera_raspberry_preview.MainActivity.surfaceCreated(MainActivity.java:134)
at android.view.SurfaceView.updateWindow(SurfaceView.java:583)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:177)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2063)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1115)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6023)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5488)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:746)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
例外を発生し、ラズベリーPIアンドロイド異なるカメラが開きますか?ご存じの場合は 私のために助けてください
ありがとう。 Camera
ため
おかげで、私はandroid.hardware.camera'はAPIレベル21以上である '使用を知って、ラズベリーパイアンドロイドは' android.hardware.camera'を使用することはありませんでしょうか? – chohyunwook
私はあなたの質問を理解していません。 –
あなたは 'android.hardware.camera2' APIが正しいと試してみますか? – chohyunwook