应用程序崩溃时,试图使用相机在Android应用程序/ Android工作室



我正在做一个膳食跟踪应用程序,你可以在这里跟踪你吃了什么,也可以上传你的膳食图像存储在你的手机上,然后在应用程序中使用,以显示你过去的膳食。

我目前正在尝试添加相机/上传图像功能,我正在跟随我在YouTube上找到的教程,然而,一旦点击"点击添加照片"按钮,该应用程序就会崩溃。

这是"TrackFragment"(输入一顿饭的数据):

(...)
public class TrackFragment extends Fragment{
final int CAMERA_REQ_CODE = 100;
ImageView imgCamera;
private final Context trackFragmentContext = this.getContext();
(...)

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

// TODO handling camera input to upload image
imgCamera = view.findViewById(R.id.imgCamera);
Button btnCamera = view.findViewById(R.id.btnCamera);
btnCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// start intent (one of these causes crash)
Intent iCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(iCamera, CAMERA_REQ_CODE);
}
});
}
// show photo on track fragment below button
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
if(requestCode==CAMERA_REQ_CODE){
Bitmap img = (Bitmap) (data.getExtras().get("data"));
imgCamera.setImageBitmap(img);
}
}
}
}

根据日志,由于摄像头访问,这似乎是一个关于安全的问题,但我确实在清单中包含了。

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我知道有些方法被弃用了,但我找不到任何其他关于如何做到这一点的教程。track-fragment/general UI的截图有什么办法可以解决这个问题吗?

我也有同样的问题,只要在你的清单中禁用你的CAMERA权限,你就没事了。

最新更新