Eclipse中的Android相机/网络摄像头模拟器不断崩溃

时间:2013-12-01 20:54:06

标签: java android eclipse camera emulation

我正在尝试使用我的电脑的内置网络摄像头在我的Android应用程序中拍照。我正在使用eclipse Android模拟器并将AVD设置为使用webcam0作为后置摄像头,但是当我运行程序时它总是崩溃,说“不幸的是,相机已停止”。我已将以下行添加到我的Manifest xml:

    <uses-permission android:name="android.permission.CAMERA"/>

虽然它似乎仍然不起作用。我已经在一些地方读过AVD管理器编辑/创建屏幕中应该有一个“硬件”部分,但是我没有它。

我错过了什么吗?这是我尝试运行应用程序时出现的logcat:

有关可能发生的事情的任何想法?我一直在寻找解决方案,似乎无法找到任何解决这个问题的方法。谢谢你的帮助。

修改 这是我的图像捕获按钮/方法代码:

/* Create capture button */
Button capture = (Button) findViewById(R.id.btnCapture);
capture.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
    //create directory/picture file
    count++;
    file = dir + count + ".jpg";
    File picFile = new File(file);
    try {
        picFile.createNewFile();
        } catch (IOException e) {}       
    Uri outputFileUri = Uri.fromFile(picFile);
    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
}
});

/* Check if valid photo */
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
    Log.d("CameraDemo", "Pic saved");
}
}

这段代码主要基于我在SO上找到的一个帖子创建,我恐怕不记得是哪一个。

2 个答案:

答案 0 :(得分:0)

你添加了:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
在你的清单中

答案 1 :(得分:0)

如果您觉得自己遵循了所有正确的步骤来激活相机,但没有成功,那么对于我来说,我必须尝试在模拟器中使用内置相机,以排除它是我的密码的可能性。我意识到默认相机应用程序正在产生相同的错误-如您所报告的。

因此,经过几次试验:(添加空间,ram,更多清单文件,清除Google Play服务数据,更新Play服务等),我决定在Windows 10 x64机器上使用Android Studio(早期是Windows) 7 x64)。令我惊讶的是,错误消失了,相机也没有崩溃。现在,我不知道它是否与OS(Win 7)或处理器或任何其他硬件或软件问题有关。如果您尚未使用Windows 10,可以尝试一下。