いつものようにFlutterで作成したaabファイルを実機で試そうと思いapksに変換するため bundletool build-apks
を実行しようとしたところ大量にエラーが出た。Windowsにて。
bundletool自体のバージョンが低かった(0.13くらい)ため最新の 1.3.0 にバージョンアップした。しかしまだエラーが出る。ただ、よく見るとエラーの内容が変わっていた。こんな感じ。最初は関係ないかと思ったが、どうもOutOfMemoryErrorが怪しいっぽい。
[BT:1.3.0] Error: java.io.IOException: Failed to obtain compression information for entry
java.io.UncheckedIOException: java.io.IOException: Failed to obtain compression information for entry
at com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.writeToZipFile(ApkzlibApkSerializerHelper.java:103)
at com.android.tools.build.bundletool.io.StandaloneApkSerializer.writeToDiskInternal(StandaloneApkSerializer.java:76)
at com.android.tools.build.bundletool.io.StandaloneApkSerializer.writeToDisk(StandaloneApkSerializer.java:43)
at com.android.tools.build.bundletool.io.ApkSetBuilderFactory$ApkSetArchiveBuilder.addStandaloneApk(ApkSetBuilderFactory.java:130)
at com.android.tools.build.bundletool.io.ApkSerializerManager.lambda$null$3(ApkSerializerManager.java:221)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:117)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:38)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Failed to obtain compression information for entry
at com.android.tools.build.apkzlib.zip.ZFile.processAllReadyEntries(ZFile.java:1890)
at com.android.tools.build.apkzlib.zip.ZFile.add(ZFile.java:1765)
at com.android.tools.build.apkzlib.zip.ZFile.add(ZFile.java:1747)
at com.android.tools.build.apkzlib.zip.ZFile.add(ZFile.java:1711)
at com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.addFile(ApkzlibApkSerializerHelper.java:247)
at com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.addNonAapt2Files(ApkzlibApkSerializerHelper.java:239)
at com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.writeToZipFile(ApkzlibApkSerializerHelper.java:144)
at com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.writeToZipFile(ApkzlibApkSerializerHelper.java:101)
... 11 more
Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:502)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:461)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:83)
at com.android.tools.build.apkzlib.zip.ZFile.processAllReadyEntries(ZFile.java:1883)
... 18 more
Caused by: java.lang.OutOfMemoryError: Java heap space
調べてみたところ、やはりメモリエラーなのでは……ということで、メモリ上限の設定を入れてみた。Windowsのため、他のOSと同様のコマンドで使えるよう、下記のようなbundletool.batファイルを作成して使っていた。
java -jar C:\NVPACK\jdk1.8.0_77\bin\bundletool-all-1.3.0.jar %*
これに下記のようなパラメータを付けてみた。5Gとか大きすぎるとそんなパラメータは使えないというエラーが出たので、下げていって最終的に1Gになった。環境によって違うのかもしれない。
java -Xmx1G -jar C:\NVPACK\jdk1.8.0_77\bin\bundletool-all-1.3.0.jar %*
原因は全然わからないが、最近Javaのアップデートが実行された気がするのでそのあたりなのかも?
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント