Android assets 找不到文件异常 FileNotFo

2021-09-29  本文已影响0人  100个大西瓜

asset FileNotFoundException
使用assets加载文件时出现的了文件未找到:原因是乱加路径;
使用Glide来加载asetts资源作为背景图片时时,如下

    public static final String PATH_HEAD = "file:///android_asset/";
    private String mWallPaperPath;

    private final SimpleTarget<Drawable> simpleTarget = new SimpleTarget<Drawable>() {
        @Override
        public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) {
            binding.main.setBackground(resource);
        }
    };

    private void updateWallpaper(String s) {
        if (TextUtils.equals(mWallPaperPath, s)) {
            return;
        }
        mWallPaperPath = s;
        Glide.with(requireContext())
                .load(PATH_HEAD + s)
                .into(simpleTarget);
    }



后来使用了觉得这种方式加载出现了肉眼可见的延迟,
更换了其他方式,使用了
AssetManager ->InputStream->BitmapFactory->Bitmap->BitmapDrawable->View.setBackgroud(drawable)
来实现,但是中间在这里出现了错误

  final AssetManager assets = context.getAssets();
  final InputStream inputStream = assets.open(PATH_HEAD + wallPaperName);

出现了找不到文件的情况,问题在于使用了复制粘贴,在AssetManager 中不需要添加PATH_HEAD 这个东东,直接使用相对路径就可以了;

  final AssetManager assets = context.getAssets();
  final InputStream inputStream = assets.open(wallPaperName);

还是要减少复制粘贴来避免一些不好排查的问题

上一篇下一篇

猜你喜欢

热点阅读