Illegal Argument Exception, обменивающийся imageview - PullRequest
0 голосов
/ 27 октября 2019

Я пытаюсь создать приложение, которое использует WhattsApp (например) для обмена изображениями. Я не знаю, почему, когда я создаю URI, он генерирует IllegalArgumentException и прерывает все приложение.

mapa_aterrizaje - это изображение, которым я хочу поделиться. string_mapa = "br_map_shipment.png" - это имя png, которым я хочу поделиться, которое хранится в R.drawable.

bm = ((BitmapDrawable)mapa_aterrizaje.getDrawable()).getBitmap();

        File filesDir = getApplicationContext().getFilesDir();
        final File imageFile = new File(filesDir, string_mapa);

        new Thread(new Runnable() {
            @Override
            public void run() {
                try{
                    os = new FileOutputStream(imageFile);
                    bm.compress(Bitmap.CompressFormat.PNG, 100, os);
                    os.flush();
                    os.close();
                } catch (Exception e) {
                    Log.e(getClass().getSimpleName(), "Error writing bm", e);
                }
            }
        }).start();

        Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

        Uri uri = FileProvider.getUriForFile(BRElegido.this, BuildConfig.APPLICATION_ID, imageFile);
        shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(Intent.EXTRA_TEXT, "Vamos a aterrizar en " + aterrizaje);
        shareIntent.setType("image/jpeg");
        shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
        startActivity(Intent.createChooser(shareIntent, "Comparte tu lugar de aterrizaje"));
    }

Это ошибка, которую я получаю:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.codmobile, PID: 6898
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:402)
        at android.view.View.performClick(View.java:7125)
        at android.view.View.performClickInternal(View.java:7102)
        at android.view.View.access$3400(View.java:801)
        at android.view.View$PerformClick.run(View.java:27301)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7319)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:397)
        at android.view.View.performClick(View.java:7125) 
        at android.view.View.performClickInternal(View.java:7102) 
        at android.view.View.access$3400(View.java:801) 
        at android.view.View$PerformClick.run(View.java:27301) 
        at android.os.Handler.handleCallback(Handler.java:883) 
        at android.os.Handler.dispatchMessage(Handler.java:100) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7319) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934) 
     Caused by: java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority com.example.codmobile
        at androidx.core.content.FileProvider.parsePathStrategy(FileProvider.java:606)
        at androidx.core.content.FileProvider.getPathStrategy(FileProvider.java:579)
        at androidx.core.content.FileProvider.getUriForFile(FileProvider.java:417)
        at com.example.codmobile.BRElegido.compartir(BRElegido.java:75)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...