Android IllegalArgumentException

Hallo, ich bin neu in der Programmierwelt und wollte eine App erstellen, mit der man ein Foto aufnehmen und dann in einer ImageView anzeigen lassen kann. Die benötigten Methoden habe ich von android.developers entnommen, daher sollten sie eigentlich nicht falsch sein. Dennoch wirft meine App eine IllegalArgumentException. Ich komme auch nach langem googeln nicht weiter, könnte mir da evtl. jemand von euch weiterhelfen?
Java

Java:
public class FotoActivity extends Activity {

    private Button aufnehmen;
    static final int REQUEST_IMAGE_CAPTURE = 1;
    static final int REQUEST_TAKE_PHOTO = 2;
    private ImageView mImageView;
    String mCurrentPhotoPath;

    private void dispatchTakePictureIntent() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        // Ensure that there's a camera activity to handle the intent
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            // Create the File where the photo should go
            File photoFile = null;
            try {
                photoFile = createImageFile();
            } catch (IOException ex) {
                // Error occurred while creating the File

            }
            // Continue only if the File was successfully created
            if (photoFile != null) {
                Uri photoURI = FileProvider.getUriForFile(this,
                        "com.example.android.fileprovider",
                        photoFile);
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
                startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
            }
        }
    }

    private File createImageFile() throws IOException {
        // Create an image file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        String imageFileName = "JPEG_" + timeStamp + "_";
        File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
        File image = File.createTempFile(
                imageFileName,  /* prefix */
                ".jpg",         /* suffix */
                storageDir      /* directory */
        );

        // Save a file: path for use with ACTION_VIEW intents
        mCurrentPhotoPath = image.getAbsolutePath();
        return image;
    }

    private void setPic() {
        // Get the dimensions of the View
        int targetW = mImageView.getWidth();
        int targetH = mImageView.getHeight();

        // Get the dimensions of the bitmap
        BitmapFactory.Options bmOptions = new BitmapFactory.Options();
        bmOptions.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
        int photoW = bmOptions.outWidth;
        int photoH = bmOptions.outHeight;

        // Determine how much to scale down the image
        int scaleFactor = Math.min(photoW/targetW, photoH/targetH);

        // Decode the image file into a Bitmap sized to fill the View
        bmOptions.inJustDecodeBounds = false;
        bmOptions.inSampleSize = scaleFactor;


        Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
        mImageView.setImageBitmap(bitmap);
    }

    @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");
            mImageView.setImageBitmap(imageBitmap);
        }
    }

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_foto);

        aufnehmen = (Button) findViewById(R.id.btnAufnehmen);
        aufnehmen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                //startActivity(intent);

                dispatchTakePictureIntent();
            }
        });

        mImageView = (ImageView) findViewById(R.id.ivFoto);

    }




    }


PHP:
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.lukasgehring.spots, PID: 3982
                  java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/com.lukasgehring.spots/files/Pictures/JPEG_20170202_143738_668644650.jpg
                      at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:711)
                      at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400)
                      at com.lukasgehring.spots.FotoActivity.dispatchTakePictureIntent(FotoActivity.java:47)
                      at com.lukasgehring.spots.FotoActivity.access$000(FotoActivity.java:25)
                      at com.lukasgehring.spots.FotoActivity$1.onClick(FotoActivity.java:116)
                      at android.view.View.performClick(View.java:5610)
                      at android.view.View$PerformClick.run(View.java:22265)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6077)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Application terminated.

Die Anpassungen in der Manifest-Datei wurden nicht vergessen, ebenso habe ich file_paths.xml erstellt
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben