diff --git a/src/main/java/com/reandroid/archive2/writer/ApkWriter.java b/src/main/java/com/reandroid/archive2/writer/ApkWriter.java index ae6d461..79adfd3 100644 --- a/src/main/java/com/reandroid/archive2/writer/ApkWriter.java +++ b/src/main/java/com/reandroid/archive2/writer/ApkWriter.java @@ -24,6 +24,7 @@ import com.reandroid.archive2.block.ApkSignatureBlock; import com.reandroid.archive2.block.EndRecord; import com.reandroid.archive2.io.ArchiveEntrySource; import com.reandroid.archive2.io.ZipFileOutput; +import com.reandroid.arsc.chunk.TableBlock; import java.io.File; import java.io.IOException; @@ -114,13 +115,21 @@ public class ApkWriter extends ZipFileOutput { File bufferFile = getBufferFile(); BufferFileOutput output = new BufferFileOutput(bufferFile); BufferFileInput input = new BufferFileInput(bufferFile); + OutputSource tableSource = null; for(OutputSource outputSource:outputList){ InputSource inputSource = outputSource.getInputSource(); + if(tableSource == null && TableBlock.FILE_NAME.equals(inputSource.getAlias())){ + tableSource = outputSource; + continue; + } onCompressFileProgress(inputSource.getAlias(), inputSource.getMethod(), output.position()); outputSource.makeBuffer(input, output); } + if(tableSource != null){ + tableSource.makeBuffer(input, output); + } output.close(); return input; }