Android assets 找不到文件异常 FileNotFoundException

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android assets 找不到文件异常 FileNotFoundException相关的知识,希望对你有一定的参考价值。

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

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

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

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

读取android的assets下的音频出错,找不到文件

.首先是assets目录的位置问题,在Eclispe中,这个目录的位置在res/下面,但到了Android Studio中,这个assets目录必须放在跟java和res同级目录下,下面是截图

    public void music()
        AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        //int mVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); // 获取当前音乐音量
        int maxVolume = mAudioManager
                .getStreamMaxVolume(AudioManager.STREAM_MUSIC);// 获取最大声音
        mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, 0); // 设置为最大声音,可通过SeekBar更改音量大小
        AssetFileDescriptor fileDescriptor =null;
        try 
            AssetManager am =this.getAssets();
            fileDescriptor =  am.openFd("ls.mp3");
            MediaPlayer myMediaPlayer = new MediaPlayer();
            myMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            myMediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),
                    fileDescriptor.getStartOffset(),
                    fileDescriptor.getLength());
            myMediaPlayer.prepare();
            myMediaPlayer.start();
         catch (IOException e) 
            e.printStackTrace();
        
    

这样就不报读取不到文件的错了

以上是关于Android assets 找不到文件异常 FileNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章

读取android的assets下的音频出错,找不到文件

使用 BitmapFactory.decodeFile 找不到 Android Studio 文件异常

Assetic 找不到文件

使用 ADB 时 Android Studio “找不到文件”,桌面版有效

Android - 将原始资产中的文件保存到外部存储以供其他应用访问,导致找不到内容根异常

找不到资产文件 project.assets.json。运行 NuGet 包还原