我得到运行时错误,而下载文件使用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
}
}
}
好吧,我可以使用下载管理器,这是已经可用的,它很容易从那里下载文件,但我不想,因为它不支持我需要的一些功能,所以请帮助我解决这个问题:-(
1条答案
按热度按时间bxgwgixi1#
App Inventor开发环境目前不支援Kotlin。请改用Java。另请参阅App Inventor Extensions document。或者使用Rush development environment,它也支援Kotlin。
要创建扩展,请遵循naming conventions for extension developers。