Я пытаюсь сделать снимок из своего приложения с помощью локальной камеры. Сохранение изображения в указанной папке занимает слишком много времени. Из-за этой временной задержки я получаю исключение NullPointerException в своем коде с использованием библиотеки растровых изображений.
Я уже проверил другие ответы, связанные с этой проблемой, я предоставил разрешения в AndroidManifest.xml, я также предоставил легкую реализацию-разрешение 'pub.devrel: easypermissions: 0.2.1'. Я могу сохранить изображение снаружи, но изображение отображается в папке через 5-10 минут. И тогда код не может прочитать изображение, так как он не может найти его на устройстве. Он появляется позже, после сбоя приложения.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
Bitmap photo = BitmapFactory.decodeFile(f.getAbsolutePath());
imageView.setImageBitmap(photo);
Intent i = new Intent(Intent.ACTION_SEND);
Uri uri = Uri.fromFile(f);
i.putExtra(Intent.EXTRA_STREAM, uri);
try {
startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(HomeScreen.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"abc@gmail.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "Subject");
i.putExtra(Intent.EXTRA_TEXT , "body of email");
}
}
Ошибка отображается в этой строке
imageView.setImageBitmap(photo);
D/AndroidRuntime: Shutting down VM
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1888, result=-1, data=Intent { dat=file:///storage/emulated/0/Pictures/pic/image-9747.jpg flg=0x1 }} to activity {com.example.pic/com.example.pic.HomeScreen}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageBitmap(android.graphics.Bitmap)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:3779)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3822)
at android.app.ActivityThread.access$1400(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1429)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:152)
at android.app.ActivityThread.main(ActivityThread.java:5497)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageBitmap(android.graphics.Bitmap)' on a null object reference```