Kamera unerwartet beendet

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von atoml, 28.04.2010.

  1. #1 atoml, 28.04.2010
    Zuletzt bearbeitet: 28.04.2010
    Auf dem G1 funktioniert dieser Codeschnipsel perfekt, nur auf dem N1 gibt es immerwieder Probleme...
    Kann mir jemand helfen?

     * Copyright (C) 2007 The Android Open Source Project
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *      http://www.apache.org/licenses/LICENSE-2.0
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
    package com.test.camera;
    import android.app.Activity;
    import android.content.Context;
    import android.hardware.Camera;
    import android.os.Bundle;
    import android.view.SurfaceHolder;
    import android.view.SurfaceView;
    import android.view.Window;
    import java.io.IOException;
    // ----------------------------------------------------------------------
    public class CameraPreview extends Activity {    
        private Preview mPreview;
            protected void onCreate(Bundle savedInstanceState) {
            // Hide the window title.
            // Create our Preview view and set it as the content of our activity.
            mPreview = new Preview(this);
    // ----------------------------------------------------------------------
    class Preview extends SurfaceView implements SurfaceHolder.Callback {
        SurfaceHolder mHolder;
        Camera mCamera;
        Preview(Context context) {
            // Install a SurfaceHolder.Callback so we get notified when the
            // underlying surface is created and destroyed.
            mHolder = getHolder();
        public void surfaceCreated(SurfaceHolder holder) {
            // The Surface has been created, acquire the camera and tell it where
            // to draw.
            mCamera = Camera.open();
            try {
            } catch (IOException exception) {
                mCamera = null;
                // TODO: add more exception handling logic here
        public void surfaceDestroyed(SurfaceHolder holder) {
            // Surface will be destroyed when we return, so stop the preview.
            // Because the CameraDevice object is not a shared resource, it's very
            // important to release it when the activity is paused.
            mCamera = null;
        public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
            // Now that the size is known, set up the camera parameters and begin
            // the preview.
            Camera.Parameters parameters = mCamera.getParameters();
            parameters.setPreviewSize(w, h);
    So wie ich das sehe, gibt es irgendein Problem bei "setParameters".

  2. Problem gelöst!

    Hatte "<uses-sdk android:minSdkVersion="7" />" nicht in AndroidManifest.xml eingetragen, und der Bildschirm muss leider immer im LANDSCAPE-Modus sein.
    Ich hoffe ich kann euch damit etwas helfen.
  3. aber wenn ich kein minsdkversion 7 haben will?
  4. Geht auch mit "<uses-sdk android:minSdkVersion="4" />"muss nur irgendetwas da stehen ;)

    Hab leider das Problem, wenn ich jetzt die Kamera beende, bekomm ich leider immernoch ein "unerwartet beendet".

Diese Seite empfehlen