Android 如果故意调用,摄像机将崩溃

Android 如果故意调用,摄像机将崩溃,android,android-intent,camera,Android,Android Intent,Camera,我的个性化相机在被Intent调用时崩溃,但如果应用程序直接启动到相机,它就会工作。我的问题是,如果相机没有设置为启动器,如果通过意图调用,相机会显示出来,但如果按下捕获按钮,它会崩溃 我有两类,第一类是启动屏幕,第二类是摄像头。启动屏幕是启动器,camera类是清单声明中的默认类。如果我运行应用程序,startp屏幕将显示,如果用户单击按钮“启动摄像头”,它将通过intent调用摄像头类,现在如果我点击/单击捕获按钮,摄像头将崩溃并停止 这是我调用camera类的意图代码 public voi

我的个性化相机在被Intent调用时崩溃,但如果应用程序直接启动到相机,它就会工作。我的问题是,如果相机没有设置为启动器,如果通过意图调用,相机会显示出来,但如果按下捕获按钮,它会崩溃

我有两类,第一类是
启动屏幕
,第二类是
摄像头
。启动屏幕是启动器,camera类是清单声明中的默认类。如果我运行应用程序,startp屏幕将显示,如果用户单击按钮“启动摄像头”,它将通过intent调用摄像头类,现在如果我点击/单击捕获按钮,摄像头将崩溃并停止

这是我调用camera类的意图代码

public void startCamera(View paramView)
 {
   Intent stCam = new Intent(GPSInitialize.this, MainActivity.class);
   stCam.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
   stCam.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
   startActivity(stCam);
   locationManager.removeUpdates((LocationListener) GPSInitialize.this);
   finish();
 }
日志:

05-12 00:17:25.368: E/AndroidRuntime(1563): java.lang.OutOfMemoryError
05-12 00:17:25.368: E/AndroidRuntime(1563):     at android.graphics.Bitmap.nativeCopy(Native Method)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at android.graphics.Bitmap.copy(Bitmap.java:555)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at com.joules.camera3100.MainActivity$3.onPictureTaken(MainActivity.java:443)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at android.hardware.Camera$EventHandler.handleMessage(Camera.java:917)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at android.os.Handler.dispatchMessage(Handler.java:102)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at android.os.Looper.loop(Looper.java:136)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at android.app.ActivityThread.main(ActivityThread.java:5017)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at java.lang.reflect.Method.invokeNative(Native Method)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at java.lang.reflect.Method.invoke(Method.java:515)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-12 00:17:25.368: E/AndroidRuntime(1563):     at dalvik.system.NativeStart.main(Native Method)

您好,您的问题不在相机,而是内存问题。捕获图像时请检查您的内部内存,因为没有存储新图像的内存。首先检查内存可用性,然后捕获图像。

为什么在“startActivity(stCam);”之后调用“finish();”??finish()将关闭活动。我使用finish结束第一个活动或启动类。这就是我为什么把finish放在后面的原因;实际上,我会在调用另一个类之前关闭startup类,在这个视图中,如果预览相机,将使用最少的内存。此方法是否错误?还共享camera类和logcat的代码。您在onPictureTaken()中进行了内存复制,这导致了OutOfMemoryError。注意数据大小。如何检查内存?我会检查存储内存并显示可用空间为9.83gb。我认为这足够容纳图像。请转到“设置”->“存储”并检查内存,或者从gallary或设备上的应用程序中删除未使用的图像。是否检查了内存或SD卡大小?因为您的图像存储在内部内存中。是的,我的内部可用内存为9.83gb,外部可用内存空间为12.65gb。如果我将清单启动器直接更改为摄像头,应用程序会工作,但如果我将启动器更改为启动类,则从启动类的按钮调用摄像头,相机会显示,但如果我开始拍摄图像,它会崩溃。