如何修复在Android上使用Kotlin下载文件时的运行时错误?

olmpazwi  于 2022-11-25  发布在  Kotlin
关注(0)|答案(1)|浏览(144)

我得到运行时错误,而下载文件使用Kotlin在Android这里在此代码中,我使用线程,如果我不使用它,然后应用程序崩溃,我不知道为什么我得到这个错误,以及我是新的Kotlin所以很抱歉遇到任何麻烦,我也试图使扩展在这里mit应用程序发明者,我是新的在这也...
我使用SimpleFunction注解创建一个简单的函数块,该函数块将运行另一个函数(下载函数),下面是SimpleFunction的代码:
`

@SimpleFunction(description = "Simple download block")
fun simpleDownload(url: String, path: String) {
    val paths = if (path.endsWith("/")){
        "${path}${getFileName(url)}"
    }else{
        "${path}/${getFileName(url)}"
    }
    thread(
        start = true,
        isDaemon = true
    ){
    download(url, path)
    }
}

这里我使用线程,但它崩溃的应用程序,但当我不使用线程,然后我得到运行时错误没有任何其他数据,但我能够创建文件,但不能保存流内容这里是下载函数代码(这里getFileName函数帮助从url获得文件名)
`

fun download(link: String, path: String): Long {

    val url = URL(link)

    val connection = url.openConnection()

    connection.connect()

    url.openStream().use { input ->

        FileOutputStream(File(path)).use { output ->

            val buffer = ByteArray(DEFAULT_BUFFER_SIZE)

            var bytesRead = input.read(buffer)

            var bytesCopied = 0L

            while (bytesRead >= 0) {

                output.write(buffer, 0, bytesRead)

                bytesCopied += bytesRead

                bytesRead = input.read(buffer)

            }

            return bytesCopied

        }

    }

}

好吧,我可以使用下载管理器,这是已经可用的,它很容易从那里下载文件,但我不想,因为它不支持我需要的一些功能,所以请帮助我解决这个问题:-(

bxgwgixi

bxgwgixi1#

App Inventor开发环境目前不支援Kotlin。请改用Java。另请参阅App Inventor Extensions document。或者使用Rush development environment,它也支援Kotlin。
要创建扩展,请遵循naming conventions for extension developers

相关问题