2022年の9月下旬に、Flutterアプリを作るための道具(ツール)であるAndroid Studioのバージョンが「Dolphin(2021.3.1)」にアップグレードされましたが、
Android Studioで作ったプロジェクトをzipファイルでエクスポートする際に、
Error: java.is.IOException: Is a directory
という謎のエラーが出て、エクスポート自体はできているのですが、Flutterのプロジェクト内にいるはずの「android」や3兄弟の1つである肝心要の「lib」フォルダがないという不具合が発生する可能性があります(現時点ではぼくの知る範囲内ではMacでのみ確認されています)。
(こんなログが確認できます)
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ファイル化させる必要があります。
(詳しくは、以下の動画で解説していますので、よろしければご覧ください)