12-21 17:21:13.672: W/System.err(1583): java.io.FileNotFoundException: /downloadedMusic.mp3: open failed: EROFS (Read-only file system) 
12-21 17:21:13.672: W/System.err(1583): at libcore.io.IoBridge.open(IoBridge.java:416) 
12-21 17:21:13.672: W/System.err(1583): at java.io.FileOutputStream.(FileOutputStream.java:88) 
12-21 17:21:13.672: W/System.err(1583): at java.io.FileOutputStream.(FileOutputStream.java:73) 
12-21 17:21:13.672: W/System.err(1583): at crifan.com.crifanLib.downlodFile(crifanLib.java:197) 
12-21 17:21:13.672: W/System.err(1583): at crifan.com.crifanLibSongtaste.stDownloadFromUrl(crifanLibSongtaste.java:204) 
12-21 17:21:13.672: W/System.err(1583): at crifan.com.downloadsongtastemusic.MainActivity.preformDownload(MainActivity.java:74) 
12-21 17:21:13.672: W/System.err(1583): at java.lang.reflect.Method.invokeNative(Native Method) 
12-21 17:21:13.672: W/System.err(1583): at java.lang.reflect.Method.invoke(Method.java:511) 
12-21 17:21:13.672: W/System.err(1583): at android.view.View$1.onClick(View.java:3586)
12-21 17:21:13.672: W/System.err(1583): at android.view.View.performClick(View.java:4084) 
12-21 17:21:13.672: W/System.err(1583): at android.view.View$PerformClick.run(View.java:16966) 
12-21 17:21:13.672: W/System.err(1583): at android.os.Handler.handleCallback(Handler.java:615) 
12-21 17:21:13.672: W/System.err(1583): at android.os.Handler.dispatchMessage(Handler.java:92) 
12-21 17:21:13.672: W/System.err(1583): at android.os.Looper.loop(Looper.java:137) 
12-21 17:21:13.672: W/System.err(1583): at android.app.ActivityThread.main(ActivityThread.java:4745) 
12-21 17:21:13.672: W/System.err(1583): at java.lang.reflect.Method.invokeNative(Native Method) 
12-21 17:21:13.672: W/System.err(1583): at java.lang.reflect.Method.invoke(Method.java:511) 
12-21 17:21:13.672: W/System.err(1583): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
12-21 17:21:13.672: W/System.err(1583): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
12-21 17:21:13.672: W/System.err(1583): at dalvik.system.NativeStart.main(Native Method) 
12-21 17:21:13.672: W/System.err(1583): Caused by: libcore.io.ErrnoException: open failed: EROFS (Read-only file system) 
12-21 17:21:13.672: W/System.err(1583): at libcore.io.Posix.open(Native Method) 
12-21 17:21:13.689: W/System.err(1583): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) 
12-21 17:21:13.689: W/System.err(1583): at libcore.io.IoBridge.open(IoBridge.java:400) 
12-21 17:21:13.689: W/System.err(1583): … 19 more


很明显,是没有权限去访问对应的位置:

/downloadedMusic.mp3

所以,接着就是去,想办法,如何将下载的东西,存储到Android中的,某个位置,程序有权限访问的位置。

去AndroidManifest.xml中添加了:

然后继续添加代码。

结果代码:

File extDir = Environment.getExternalStorageDirectory();String filename = "downloadedMusic.mp3";File fullFilename =new File(extDir.getAbsolutePath() + extDir.pathSeparatorChar + filename); try {    fullFilename.createNewFile();    fullFilename.setWritable(Boolean.TRUE);    songtaste.stDownloadFromUrl(strSongUrl, fullFilename);     } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();}

就出错了:


12-21 17:45:48.298: W/System.err(1547): java.io.IOException: open failed: EROFS (Read-only file system)

12-21 17:45:48.298: W/System.err(1547):     at java.io.File.createNewFile(File.java:940)

12-21 17:45:48.298: W/System.err(1547):     at crifan.com.downloadsongtastemusic.MainActivity.preformDownload(MainActivity.java:83)

12-21 17:45:48.298: W/System.err(1547):     at java.lang.reflect.Method.invokeNative(Native Method)

12-21 17:45:48.298: W/System.err(1547):     at java.lang.reflect.Method.invoke(Method.java:511)

12-21 17:45:48.298: W/System.err(1547):     at android.view.View$1.onClick(View.java:3586)

12-21 17:45:48.298: W/System.err(1547):     at android.view.View.performClick(View.java:4084)

12-21 17:45:48.298: W/System.err(1547):     at android.view.View$PerformClick.run(View.java:16966)

12-21 17:45:48.298: W/System.err(1547):     at android.os.Handler.handleCallback(Handler.java:615)

12-21 17:45:48.298: W/System.err(1547):     at android.os.Handler.dispatchMessage(Handler.java:92)

12-21 17:45:48.298: W/System.err(1547):     at android.os.Looper.loop(Looper.java:137)

12-21 17:45:48.298: W/System.err(1547):     at android.app.ActivityThread.main(ActivityThread.java:4745)

12-21 17:45:48.298: W/System.err(1547):     at java.lang.reflect.Method.invokeNative(Native Method)

12-21 17:45:48.298: W/System.err(1547):     at java.lang.reflect.Method.invoke(Method.java:511)

12-21 17:45:48.298: W/System.err(1547):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)

12-21 17:45:48.298: W/System.err(1547):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)

12-21 17:45:48.298: W/System.err(1547):     at dalvik.system.NativeStart.main(Native Method)

12-21 17:45:48.298: W/System.err(1547): Caused by: libcore.io.ErrnoException: open failed: EROFS (Read-only file system)

12-21 17:45:48.309: W/System.err(1547):     at libcore.io.Posix.open(Native Method)

12-21 17:45:48.309: W/System.err(1547):     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)

12-21 17:45:48.309: W/System.err(1547):     at java.io.File.createNewFile(File.java:933)

12-21 17:45:48.309: W/System.err(1547):     … 15 more

去改为:

File extDir = Environment.getExternalStorageDirectory();String filename = "downloadedMusic.mp3";File fullFilename = new File(extDir, filename); try {    fullFilename.createNewFile();    fullFilename.setWritable(Boolean.TRUE);    songtaste.stDownloadFromUrl(strSongUrl, fullFilename);     } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();}

结果是,可以正常新建文件:

/mnt/sdcard/downloadedMusic.mp3

看来之前就是由于:

/mnt/sdcard:downloadedMusic.mp3

而导致无法创建的。


更多相关文章

  1. 使用Git下载Google Android源代码
  2. Android中用代码设置ImageView的src和background
  3. Android 退出提示框 代码
  4. 我的Android进阶之旅------>android api的源代码下载地址
  5. 简单几段代码实现窗口抖动
  6. 史上最全!最经典!最无私的Android资料(书籍+代码)分享-不要积分(求置
  7. GreenDao自动生成Android数据库操作代码
  8. Android源代码下载与编译
  9. 可分享到 Android、iOS 和 Flutter平台的Rust代码编译 [转]

随机推荐

  1. Android(安卓)AppWidget系统框架
  2. Android中ListView中Item的设置
  3. Android(安卓)SDK版本更新
  4. 修改系统Android版本,版本号
  5. 系出名门Android(8) - 控件(View)之TextS
  6. Android也有beacon了
  7. android adb工具
  8. Android微信界面
  9. 关于Chromium的Android(安卓)Studio使用
  10. android图像处理系统1.3