美文网首页
Android assets 找不到文件异常 FileNotFo

Android assets 找不到文件异常 FileNotFo

作者: 100个大西瓜 | 来源:发表于2021-09-29 13:29 被阅读0次

    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);
    

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

    相关文章

      网友评论

          本文标题:Android assets 找不到文件异常 FileNotFo

          本文链接:https://www.haomeiwen.com/subject/qqrjnltx.html