【问题标题】:Camera App using ACTION_CAPTURE_IMAGE crashing使用 ACTION_CAPTURE_IMAGE 的相机应用程序崩溃
【发布时间】:2017-12-10 05:50:32
【问题描述】:

我正在尝试制作一个应用程序,该应用程序可以在我的应用程序主活动的 ImageView 中显示打开相机和捕获的照片。但是当我运行相机 Intent 时应用程序崩溃了。

这是我的 MainActivity.class

import android.content.Intent;
import android.graphics.Bitmap;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

static final int REQUEST_IMAGE_CAPTURE=1;
public void capture(View v){
  MainActivity m=new MainActivity();
  m.captureImage();

}

public void captureImage(){
    Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if(i.resolveActivity(getPackageManager())!=null){
        startActivityForResult(i,REQUEST_IMAGE_CAPTURE);
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    if(requestCode==REQUEST_IMAGE_CAPTURE&&resultCode==RESULT_OK){
        Bundle extras=data.getExtras();
        Bitmap imageBitmap=(Bitmap) extras.get("data");
        ImageView iv=findViewById(R.id.myimage);
        iv.setImageBitmap(imageBitmap);
    }    }
}

任何愿意提供帮助的人都会感激不尽。

【问题讨论】:

标签: android


【解决方案1】:

您永远不会创建 Activity 的实例。

MainActivity m=new MainActivity();// 错误

Intent 是允许在 Android 的 Components 之间进行通信的 API。关于调用方法->您在同一个类中调用方法,为什么要创建一个对象只是调用它。无论如何它都会使用当前引用调用。

public void capture(View v){
captureImage();
}

【讨论】:

  • 为什么我不创建活动实例
  • 原因活动是通过意图实例化的。阅读文档了解更多信息。
【解决方案2】:

您正在创建 MainActivity 的新实例,仅忽略此使用。

static final int REQUEST_IMAGE_CAPTURE=1;
public void capture(View v){
   captureImage();
}

并确保在清单上添加了相机权限。

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

如果使用 Android M+,请检查是否已授予运行时摄像头权限。

【讨论】:

猜你喜欢
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多