java.lang.IllegalArgumentException: параметр, указанный как ненулевой, является нулевой ошибкой в ​​коде Java - PullRequest
1 голос
/ 15 октября 2019

Я использую эту библиотеку Kfilter для добавления фильтров в мой код, написанный на JAVA.

Я получаю эту ошибку java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull при добавлении изображения в Imageview.

Это мой код:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == 1 && resultCode == Activity.RESULT_OK){
            if (data == null) {
                showMessage("Failed to open picture!");
                return;
            }
            else
                {
                resultUri = data.getData();

                kfilter.setContentPath(resultUri.toString()); //Error occurs here
                kfilter.setFilters(filter);


            }

        }

    }

Это ошибка:

 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.google.android.apps.photos.contentprovider/0/1/content://media/external/images/media/120425/ORIGINAL/NONE/916748167 flg=0x1 clip={text/uri-list U:content://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F120425/ORIGINAL/NONE/916748167} }} to activity {com.unit.helloworld/com.unit.helloworld.CompetitionPackage.AddNewPhotoAcivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter $this$startsWith
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4596)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4638)
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1976)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6912)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)
     Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter $this$startsWith
        at kotlin.text.StringsKt__StringsJVMKt.startsWith(Unknown Source:2)
        at kotlin.text.StringsKt__StringsJVMKt.startsWith$default(StringsJVM.kt:332)
        at com.isaacudy.kfilter.KfilterMediaFile.<init>(KfilterMediaFile.kt:32)
        at com.isaacudy.kfilter.KfilterView.setContentPath(KfilterView.kt:98)
        at com.unit.helloworld.CompetitionPackage.AddNewPhotoAcivity.onActivityResult(AddNewPhotoAcivity.java:208)
        at android.app.Activity.dispatchActivityResult(Activity.java:7468)

Все, что я могу найти, это добавить ? к коду. Но я написал на Java, а библиотека разработана в kotlin. Как это решить?

1 Ответ

0 голосов
/ 15 октября 2019

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

val extension = path.split(".").last()
val mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension)

when {
    mimeType.startsWith("video") -> processAsVideo() // the error arises here
    mimeType.startsWith("image") -> processAsImage()
    else -> error = MediaError.ERROR_INVALID_FILE_TYPE
}

Значение mimeType равно нулю, если MimeTypeMap не удалось сопоставить расширение файла с типом mime. Поэтому я бы порекомендовал вам проверить, что тип вашего файла правильный. Если это так, вы можете спросить администратора библиотеки о проблеме, так что этот случай будет обработан более изящно.

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