Android W / System.err: удалить не удалось: ENOENT (нет такого файла или каталога) - PullRequest
0 голосов
/ 20 октября 2019

Я хочу поделиться изображением из URL, используя библиотеку Picasso, сначала загрузите растровое изображение, затем поделитесь изображением с текстом, это работает, но в некоторых случаях это не работает, и я получаю это сообщение

W/System.err: remove failed: ENOENT (No such file or directory) : /data/data/is.com.raisse.fortniteguide/cache/picasso-cache/journal.tmp

Я не знаю причину этого сообщения, это мой код

myViewHolder.shareImg.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    myViewHolder.progressBar.setVisibility(View.VISIBLE);

                    @SuppressLint("HandlerLeak") final Handler handler = new Handler(){
                        @Override
                        public void handleMessage(Message msg) {

                            Picasso.get().load(newsLst.get(position).getImgUri()).into(new Target() {
                                @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                                    Intent i = new Intent(Intent.ACTION_SEND);
                                    i.putExtra(Intent.EXTRA_TEXT, newsLst.get(position).getUrl());
                                    i.setType("image/*");
                                    i.putExtra(Intent.EXTRA_STREAM, getLocalBitmapUri(bitmap));
                                    myViewHolder.progressBar.setVisibility(View.GONE);
                                    context.startActivity(Intent.createChooser(i, "Share Image"));
                                }

                                @Override
                                public void onBitmapFailed(Exception e, Drawable errorDrawable) {
                                    myViewHolder.progressBar.setVisibility(View.GONE);
                                    Log.d("Picasso","===========> Error"+e.getMessage());

                                }
                                @Override public void onPrepareLoad(Drawable placeHolderDrawable) { }
                            });

                            super.handleMessage(msg);
                        }
                    };

                    new Thread(new Runnable() {
                        @Override
                        public void run() {

                            handler.sendEmptyMessage(1);

                        }
                    }).start();

                }
            });

getLocalBitmapUri метод:

private Uri getLocalBitmapUri(Bitmap bmp) {
    Uri bmpUri = null;
    try {

        File file =  new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), "share_image_" + System.currentTimeMillis() + ".png");
        FileOutputStream out = new FileOutputStream(file);
        bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
        out.close();
        bmpUri = Uri.fromFile(file);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return bmpUri;
}
...