Kotlin проблема с разархивированием в режиме релиза - PullRequest
0 голосов
/ 24 марта 2020

Привет, я загружаю и разархивирую файл. Он отлично работает, когда я пытаюсь запустить его на своем компьютере с помощью эмулятора или телефона. вот код для распаковки:

private fun unpackZip(zipFile: File, key: String): Boolean {
    println("unpackzip")

    var input: InputStream? = null
    var zis: ZipInputStream? = null
    var outputFile: FileOutputStream?= null
    var succeed = true
    val path = zipFile.parent

    try {
        var filename: String
        var ze: ZipEntry? = null
        val buffer = ByteArray(1024)
        var count = 0

        input = FileInputStream(zipFile)
        zis = ZipInputStream(BufferedInputStream(input))

        while ({ze = zis.nextEntry; ze}() != null) {

            filename = ze!!.name

            if (ze!!.isDirectory) {
                val fmd = File(path + File.separator+ filename)
                fmd.mkdirs()
                continue
            }

            outputFile = FileOutputStream(path + File.separator + filename)
            while ({count = zis.read(buffer); count}() != -1) {
                outputFile.write(buffer, 0, count)
            }
            outputFile.close()
            zis.closeEntry()
        }

        zis.close()
    } catch (e: IOException) {
        Log.e(TAG, "An error occurred while unpacking downloaded magazine (Wookey : $key)")
        deleteRecursive(zipFile.parentFile)

        succeed = false
    } finally {
        input?.close()
        zis?.close()
        outputFile?.run {
            flush()
            close()
        }
    }
    if (succeed)
        zipFile.delete()

    return succeed
}

Проблема в том, что когда я запускаюсь на своем компьютере, я получаю success = true, все мои файлы распаковываются, и я получаю файл c. json, который Я хочу. Но когда я генерирую подписанный apk, я также получаю все свои файлы и мой файл c. json, но этот файл не завершен, конец этого файла отсутствует и не всегда в одном и том же месте. Иногда я получаю половину файла, что-то меньше или больше.

Я действительно не знаю, почему это работает на моем компьютере, но не на выпуске?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...