相机启动cancelled.Camera应用程序

时间:2013-03-18 14:59:03

标签: android xml button null camera

嘿,我是android和eclipse环境的新手。我不知道Java。我正在尝试创建一个应用程序来打开Android设备的摄像头。这就是我的主要activity.java看起来像

package com.example.trycamera2;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
private Uri fileUri;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button button = (Button) findViewById(R.id.button_send);*****
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
             Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
              File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/xray");
              dir.mkdirs();
             File file = new File(dir, "tmp_avatar_"
                              + String.valueOf(System.currentTimeMillis()) + ".jpg");
              fileUri = Uri.fromFile(file); 
             intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
             startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

}
    });
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            Bitmap tempBitmap = (Bitmap) data.getExtras().get("data"); 
            FileOutputStream out;
            try {
                out = new FileOutputStream(fileUri.getPath());
                tempBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); 
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                Log.v("ManageImage-other", "another phone type"); 
                e.printStackTrace();
            } 

            // Image captured and saved to fileUri specified in the Intent
            Toast.makeText(this, "Image saved to:\n" +
                     data.getData(), Toast.LENGTH_LONG).show();
        } else if (resultCode == RESULT_CANCELED) {
            // User cancelled the image capture
        } else {
            // Image capture failed, advise user
        }
    }
    }

}

在星号标记行的button_send下面有一个红色标记...它显示了另一个action_settings而不是button_send ....但是当我用action_settings替换并运行时,启动被取消。无法在模拟器上安装.apk任何帮助都会有很大用处。

1 个答案:

答案 0 :(得分:0)

听起来像Android无法在任何布局中找到您的按钮。仔细检查你的布局,确保它们在那里。

如果是,只需转到顶部的“项目”菜单,然后选择“清除”。选择您的项目,然后单击“确定”。清理和构建需要一些时间,但这可能会解决您的问题。