[Flutter/Mac]Android Studio Dolphinでzipファイルでエクスポートできない場合の対処法(Error: java.is.IOException: Is a directory)

2022年の9月下旬に、Flutterアプリを作るための道具(ツール)であるAndroid Studioのバージョンが「Dolphin(2021.3.1)」にアップグレードされましたが、

blank

Android Studioで作ったプロジェクトをzipファイルでエクスポートする際に、

Error: java.is.IOException: Is a directory

という謎のエラーが出て、エクスポート自体はできているのですが、Flutterのプロジェクト内にいるはずの「android」や3兄弟の1つである肝心要の「lib」フォルダがないという不具合が発生する可能性があります(現時点ではぼくの知る範囲内ではMacでのみ確認されています)。

blank

(こんなログが確認できます)

2022-10-05 12:47:06,178 [3066871]   INFO - .idea.actions.ExportProjectZip - error making zip 
java.io.IOException: Is a directory
  at java.base/sun.nio.ch.FileDispatcherImpl.read0(Native Method)
  at java.base/sun.nio.ch.FileDispatcherImpl.read(FileDispatcherImpl.java:48)
  at java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276)
  at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:245)
  at java.base/sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:223)
  at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65)
  at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:107)
  at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:101)
  at java.base/java.io.InputStream.read(InputStream.java:205)
  at com.intellij.openapi.util.io.StreamUtil.copy(StreamUtil.java:33)
  at com.intellij.util.io.Compressor$Zip.writeFileEntry(Compressor.java:130)
  at com.intellij.util.io.Compressor$1.visitFile(Compressor.java:268)
  at com.intellij.util.io.Compressor$1.visitFile(Compressor.java:247)
  at java.base/java.nio.file.Files.walkFileTree(Files.java:2800)
  at java.base/java.nio.file.Files.walkFileTree(Files.java:2872)
  at com.intellij.util.io.Compressor.addRecursively(Compressor.java:247)
  at com.intellij.util.io.Compressor.addDirectory(Compressor.java:226)
  at com.intellij.util.io.Compressor.addDirectory(Compressor.java:222)
  at com.android.tools.idea.actions.ExportProjectZip.save(ExportProjectZip.java:167)
  at com.android.tools.idea.actions.ExportProjectZip$1.run(ExportProjectZip.java:78)
  at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:436)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:120)
  at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsync$5(CoreProgressManager.java:496)
  at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:244)
  at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
  at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624)
  at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
  at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
  at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
  at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
  at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:244)
  at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
  at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
  at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
  at java.base/java.security.AccessController.doPrivileged(Native Method)
  at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
  at java.base/java.lang.Thread.run(Thread.java:829)

 

これについては、Flutter公式のissueや、Googleの「issueTracker」や、はたまた、Android Studioのお父さんである「Intellij Idea」の開発元であるJet Brains社のyoutrack.comにも問い合わせをしているのですが、現時点(2022/11上旬)では有益な回答が得られていないので、Finderから通常のフォルダを圧縮する要領でzipファイル化させる必要があります。

blank

 

(詳しくは、以下の動画で解説していますので、よろしければご覧ください)

blank

こんな記事も読まれています

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)
blank

はじめての方へ

blank
みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

おすすめコンテンツ

プログラミングを学ぶとどんないいことがあるのか
みんプロ式を選んでいただける6つの理由
ぼくの人生挫折ヒストリー(代表者プロフィール)
ぼくのプログラミング挫折ヒストリー(無料メール講座・6大特典付き)
今最も注目のアプリ開発ツール「Flutter(フラッター)」ミニ動画講座

みんプロ作成アプリ

blank
blank
blank
blank
blank

みんプロ式動画講座(コア・Flutter)

ゼロからのFlutter(初級編)-はじめてのプログラミングからアプリリリースまで-
Flutter中級編1-Web通信・設計・状態管理・DIの基礎-
Flutter中級編2-Firebase/地図・カメラ連携等の基礎-
Flutter中級編3-広告/アプリ内課金等の基礎-
Flutter中級編4-Webアプリとレスポンシブデザインの基礎-

みんプロ式動画講座(サテライト)

Flutter/Dartトラブルシューティング・小ネタ集(コア初級編受講で無料プレゼント)
ゼロからのGit・GitHub(コマンドラインツールを極力使わないバージョン管理入門)
Flutter/Dartにおける設計・状態管理・DIの解説集
Dart逆引き大辞典
Flutterにおけるテストの基礎
blank
blank

TOP