Проблема нулевой проверки при загрузке файла kotlin webview - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь загрузить файл с помощью webview.Я застрял на этом шаге.

Мой полный код =

override fun onImageChosen(chosenImage: ChosenImage) {
    runOnUiThread(Runnable {
        Log.d("CI:", chosenImage.filePathOriginal)
        if (null == mUploadMessage && mUploadMessageArray == null) return@Runnable
        val result = Uri.fromFile(File(chosenImage.fileThumbnail))
        if (mUploadMessage != null) {
            mUploadMessage!!.onReceiveValue(result)
            mUploadMessage = null
        } else if (mUploadMessageArray != null) {
            val uris = arrayOfNulls<Uri>(1)
            uris[0] = result
            mUploadMessageArray!!.onReceiveValue(uris)
        }
    })
}

Блок кода проблемы =

val uris = arrayOfNulls<Uri>(1)
                uris[0] = result
                mUploadMessageArray!!.onReceiveValue(uris)

При наведении курсора на uris (onReceiveValue (uris)), он делает следующую ошибку

Type mismatch.
Required:
Array<Uri>!
Found:
Array<Uri?>

1 Ответ

0 голосов
/ 16 сентября 2018

Вы можете инициализировать свой Uris по-другому

val uris = arrayOf(result)

это не должно вызывать проблем с обнуляемостью

Проблема в том, что (очевидно), что kotlin не может назначать массивы Smartcast, потому что он не может быть уверен, что каждому элементу типа Nullable присвоено ненулевое значение

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