如果Android应用在设备上崩溃但在模拟器上没有问题,可能是因为应用缺少必要的权限。以下是解决方法的代码示例:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
// Permission is not granted, request it
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA},
CAMERA_PERMISSION_REQUEST);
} else {
// Permission is already granted
// Perform camera related operations
openCamera();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == CAMERA_PERMISSION_REQUEST) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission is granted
// Perform camera related operations
openCamera();
} else {
// Permission is denied
// Handle the denial
Toast.makeText(this, "Camera permission denied", Toast.LENGTH_SHORT).show();
}
}
}
通过添加所需的权限并正确处理权限请求结果,您的应用应该能够在设备上正常运行了。