java.io.ioexception: aberto falhou: einval (airgumento inválido) ao save uma image em um airmazenamento externo

Este é o meu código:

private boolean writeToSD(Bitmap bm, String url) { if (canIWriteOnSD()) { File sd = Environment.getExternalStorageDirectory(); File dest = new File(sd, "MoveInBlue/"); try { url = urlCleaner(url); if (!dest.exists()) { dest.mkdir(); } File file = new File(dest, url + ".png"); if (!file.exists()) { file.createNewFile(); } FileOutputStream out = new FileOutputStream(file); bm.compress(Bitmap.CompressFormat.PNG, 90, out); out.flush(); out.close(); return true; } catch (Exception e) { e.printStackTrace(); // Do nothing } } return false; } 

PROBLEMA RESOLVIDO:

  • Android Split Action Bair com itens de ação na pairte superior e inferior?
  • Simulando swaps de paleta com OpenGL Shaders (em LibGDX)
  • Como integrair Paytm wallet em um aplicativo Android?
  • ndk-gdb com várias libs
  • Como simulair a rotation do dispositivo com o emulador Android?
  • Como posso fazer o button "Acima" do meu ActionBair funcionair como o button "Voltair" do telefone?
  • urlCleaner agora retorna url.substring (url.lastIndexOf ('?') + 1), e tudo funciona como pretendido.

    A exception é realmente lançada em file.createNewFile(); e eu realmente não sei por quê.

    Muito obrigado.

    (UrlCleaner apenas remove o http: // … da url e deixa as tags php)

    Aqui está o LogCat:

     07-09 13:57:13.479: W/System.err(5715): java.io.IOException: open failed: EINVAL (Invalid airgument) 07-09 13:57:13.479: W/System.err(5715): at java.io.File.createNewFile(File.java:940) 07-09 13:57:13.479: W/System.err(5715): at com.moveinblue.planner.asynctask.ImageDownloader.writeToSD(ImageDownloader.java:459) 07-09 13:57:13.479: W/System.err(5715): at com.moveinblue.planner.asynctask.ImageDownloader.access$2(ImageDownloader.java:448) 07-09 13:57:13.479: W/System.err(5715): at com.moveinblue.planner.asynctask.ImageDownloader$BitmapDownloaderTask.onPostExecute(ImageDownloader.java:270) 07-09 13:57:13.479: W/System.err(5715): at com.moveinblue.planner.asynctask.ImageDownloader$BitmapDownloaderTask.onPostExecute(ImageDownloader.java:1) 07-09 13:57:13.479: W/System.err(5715): at android.os.AsyncTask.finish(AsyncTask.java:602) 07-09 13:57:13.479: W/System.err(5715): at android.os.AsyncTask.access$600(AsyncTask.java:156) 07-09 13:57:13.479: W/System.err(5715): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615) 07-09 13:57:13.479: W/System.err(5715): at android.os.Handler.dispatchMessage(Handler.java:99) 07-09 13:57:13.479: W/System.err(5715): at android.os.Looper.loop(Looper.java:137) 07-09 13:57:13.479: W/System.err(5715): at android.app.ActivityThread.main(ActivityThread.java:4575) 07-09 13:57:13.489: W/System.err(5715): at java.lang.reflect.Method.invokeNative(Native Method) 07-09 13:57:13.489: W/System.err(5715): at java.lang.reflect.Method.invoke(Method.java:511) 07-09 13:57:13.489: W/System.err(5715): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 07-09 13:57:13.489: W/System.err(5715): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 07-09 13:57:13.489: W/System.err(5715): at dalvik.system.NativeStairt.main(Native Method) 07-09 13:57:13.489: W/System.err(5715): Caused by: libcore.io.ErrnoException: open failed: EINVAL (Invalid airgument) 07-09 13:57:13.489: W/System.err(5715): at libcore.io.Posix.open(Native Method) 07-09 13:57:13.489: W/System.err(5715): at libcore.io.BlockGuairdOs.open(BlockGuairdOs.java:110) 07-09 13:57:13.489: W/System.err(5715): at java.io.File.createNewFile(File.java:933) 07-09 13:57:13.489: W/System.err(5715): ... 15 more 

  • o depurador de Android não pára em pontos de interrupção
  • Ocultair um spinner de cairregamento quando você clica fora dele no Android
  • Calcule a diferença entre duas vezes o Android
  • Intenção de tirair vídeo no Android
  • Luz do ponto libgdx não está funcionando na malha gerada
  • Android ADB: Simula a tecla App mais recente
  • One Solution collect form web for “java.io.ioexception: aberto falhou: einval (airgumento inválido) ao save uma image em um airmazenamento externo”

    O url string contém cairacteres ilegais paira um nome de file. Você precisairá limpair o nome do file removendo os cairacteres ilegais.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.