当前位置: 首页 > 知识库问答 >
问题:

参数指定为非空kotlin

胡致远
2023-03-14

我有java代码,我改成kotlin了,我的代码是用pdf-viewer库显示pdf的,我不明白为什么我的代码是错误的,下面是错误:

指定为non-null的是null参数:方法kotlin.jvm.internal.intrinsics.CheckParameterIsNotNull,inputStream参数

这是我的密码

    package pdfviewer.pdfviewer

import android.annotation.SuppressLint
import android.app.Activity
import android.os.AsyncTask
import android.os.Bundle
import com.github.barteksc.pdfviewer.PDFView
import java.io.BufferedInputStream
import java.io.IOException
import java.io.InputStream
import java.net.HttpURLConnection
import java.net.MalformedURLException
import java.net.URL

class PdfRender : Activity() {

lateinit var pdfView: PDFView

override fun onCreate( savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.pdf_render)
}

@SuppressLint("StaticFieldLeak")
inner class DownloadPdf : AsyncTask<String, Void, InputStream>() {

    override fun doInBackground(vararg strings: String): InputStream? {
        var inputStream: InputStream? = null
        try {
            val uri = URL(strings[0])
            val urlConnection = uri.openConnection() as HttpURLConnection
            if (urlConnection.responseCode == 200) {
                inputStream = BufferedInputStream(urlConnection.inputStream)
            }
        } catch (e: MalformedURLException) {
            e.printStackTrace()
        } catch (e: IOException) {
            e.printStackTrace()
        }

        return inputStream
    }

    override fun onPostExecute(inputStream: InputStream) {
        pdfView.fromStream(inputStream).load()
    }
     }
    }

共有1个答案

公冶嘉茂
2023-03-14

doInbackground()方法中返回的内容可以为空。因此,onPostExecute()的参数应该是可为空的类型。

即,onPostExecute(InputStream:InputStream)应该是onPostExecute(InputStream:InputStream)

 类似资料:
  • 我有一个错误: 原因:java.lang.IllegalArgumentException:指定为非Null的参数为Null:方法kotlin.jvm.internal.intrinsics.CheckParameterIsNotNull,参数savedInstanceState 当我试图在Kotlin中膨胀一个自定义对话框时,我在对话框中的super.oncreate行上得到了上面写的错误。 对

  • 我在行得到异常。怎么会呢?这到底是怎么回事? 这是我的密码。 堆栈跟踪

  • 问题内容: 我正在尝试在Jenkins / Hudson上配置我的电子邮件,并且不断收到错误消息: 我已经在网上看到了大量有关该错误的信息,但是我没有得到任何帮助。我在Fedora Linux(不是OpenJDK)上使用Sun的JDK。 这是我尝试过的一些方法。我试着从以下这个建议后,但复制从Windows的cacerts到托管詹金斯没有工作,我的Fedora箱。我尝试按照本指南进行操作,因为我试

  • 问题内容: 我在这里有用于登录的代码,遇到此错误,“ java.sql.SQLException:未为参数2指定值” 有时,“ java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。” 我真的不知道 } 问题答案: 您正在将用户和密码都分配给相同的参数(1)。 更改此: 对此:

  • 这与为什么GCC不能为两个int32s的结构生成最优运算符==有关?。我在godbolt.org玩弄那个问题的代码,注意到了这个奇怪的行为。 https://godbolt.org/z/e49h6d 对于非零ptr,clang-O3(所有版本)生成此代码或类似代码: 这严格实现了C函数的短路行为,仅当x字段为零时加载y字段。 对于非零参考,clang 3.6和更早版本生成与非零ptr相同的代码,但