2010-04-27 2 views
0

아직 실제 장치에서이 작업을 시도했지만 비슷한 결과가 예상됩니다. 어쨌든 짧은 이야기로, 에뮬레이터에서 앱을 실행할 때마다 메모리 부족 예외로 인해 충돌이 발생합니다.내 Android 앱 카메라 미리보기에서 내 AVD의 메모리가 부족한 이유가 무엇인가요?

내 코드는 기본적으로 google의 카메라 미리보기 API 데모와 본질적으로 완벽하게 동일하게 작동합니다.

응용 프로그램에있는 유일한 파일은 (내가/사용을 만든)

package berbst.musicReader; 

import java.io.IOException; 

import android.app.Activity; 
import android.content.Context; 
import android.hardware.Camera; 
import android.os.Bundle; 
import android.view.SurfaceHolder; 
import android.view.SurfaceView; 

/********************************* 
* Music Reader v.0001 
* Still VERY under construction. 
* @author Bryan 
* 
*********************************/ 

public class MusicReader extends Activity { 
private MainScreen main; 
    @Override 
    //Begin activity 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     main = new MainScreen(this); 
     setContentView(main); 

    } 

class MainScreen extends SurfaceView implements SurfaceHolder.Callback { 
    SurfaceHolder sHolder; 
    Camera cam; 

    MainScreen(Context context) { 
     super(context); 

     //Set up SurfaceHolder 
     sHolder = getHolder(); 
     sHolder.addCallback(this); 
     sHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
    } 

    public void surfaceCreated(SurfaceHolder holder) { 
     // Open the camera and start viewing 
     cam = Camera.open(); 
     try { 
      cam.setPreviewDisplay(holder); 
     } catch (IOException exception) { 
      cam.release(); 
      cam = null; 
     } 
    } 

    public void surfaceDestroyed(SurfaceHolder holder) { 
     // Kill all our crap with the surface 
     cam.stopPreview(); 
     cam.release(); 
     cam = null; 
    } 

    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 
     // Modify parameters to match size. 
     Camera.Parameters params = cam.getParameters(); 
     params.setPreviewSize(w, h); 
     cam.setParameters(params); 
     cam.startPreview(); 
    } 

} 

}

+0

이것이 실제 장치에서도 발생하는 것을 확인할 수 있습니다. – Bryan

답변

0

below-로하면 카메라 권한을 AndroidManifest.xml에 추가되어 있는지 확인합니다. 분명히 당신은 (약간의 기괴한 이유로) 메모리 예외를 벗어날 것입니다. 그것은 어쨌든 나를 위해 일했습니다.

관련 문제