Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.IllegalArgumentException:指定为非null的参数在java代码中为null错误_Java_Android_Kotlin_Illegalargumentexception_Non Nullable - Fatal编程技术网

java.lang.IllegalArgumentException:指定为非null的参数在java代码中为null错误

java.lang.IllegalArgumentException:指定为非null的参数在java代码中为null错误,java,android,kotlin,illegalargumentexception,non-nullable,Java,Android,Kotlin,Illegalargumentexception,Non Nullable,我正在用JAVA编写的代码中添加过滤器 将图像添加到Imageview时,我收到此错误java.lang.IllegalArgumentException:指定为非null的参数为null:method kotlin.jvm.internal.Intrinsics.checkParametersNotnull 这是我的代码: @Override protected void onActivityResult(int requestCode, int resultCode, Int

我正在用JAVA编写的代码中添加过滤器

将图像添加到Imageview时,我收到此错误
java.lang.IllegalArgumentException:指定为非null的参数为null:method kotlin.jvm.internal.Intrinsics.checkParametersNotnull

这是我的代码:

    @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.lang.RuntimeException:未能传递结果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剪辑={text/uri列表U:content://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F120425/ORIGINAL/NONE/916748167}}}到活动{com.unit.helloworld/com.unit.helloworld.CompetitionPackage.AddNewPhotoacity}:java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParametersNotNull,参数$this$startsWith
位于android.app.ActivityThread.deliverResults(ActivityThread.java:4596)
位于android.app.ActivityThread.handleSendResult(ActivityThread.java:4638)
在android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1976)上
位于android.os.Handler.dispatchMessage(Handler.java:106)
位于android.os.Looper.loop(Looper.java:193)
位于android.app.ActivityThread.main(ActivityThread.java:6912)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)
原因:java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParametersNotNull,参数$this$startsWith
位于kotlin.text.StringsKt__StringsJVMKt.startsWith(未知来源:2)
在kotlin.text.StringsKt__StringsJVMKt.startsWith$default处(StringsJVM.kt:332)
位于com.isaacudy.kfilter.KfilterMediaFile.(KfilterMediaFile.kt:32)
在com.isaacudy.kfilter.KfilterView.setContentPath(KfilterView.kt:98)
在com.unit.helloworld.CompetitionPackage.AddNewPhotoacity.onActivityResult(AddNewPhotoacity.java:208)上
位于android.app.Activity.dispatchActivityResult(Activity.java:7468)
我所能找到的就是在代码中添加
,但我用Java编写,库是用kotlin开发的。
如何解决此问题?

仔细检查堆栈跟踪后,您会注意到错误出现在
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
}

如果
MimeTypeMap
无法将文件扩展名映射到mime类型,则
mimeType
为空。因此,我建议您检查文件的类型是否正确。如果正确,您可以向库维护人员询问此问题,以便更优雅地处理此情况。

在仔细检查sta后ck trace您会注意到错误出现在
kfiltermadiafile
中。以下是相关部分:

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
}

如果
MimeTypeMap
无法将文件扩展名映射到mime类型,则
mimeType
为空。因此,我建议您检查文件的类型是否正确。如果正确,您可以向库维护人员询问问题,以便更优雅地处理此情况。

是否检查了
data.getData()
正在返回
Uri
。其次,您在哪个操作系统上运行?@mustansarseed是的,我烘烤了Uri。它显示了正确的位置。我当前正在oreo上使用它。您是否检查了
data.getData()
正在返回
Uri
。其次,您在哪个操作系统上运行?@Mustansarseed是的,我烤了Uri。它显示了正确的位置。我目前正在oreo上使用它。有没有办法在代码本身中解决这个问题?因为库在过去一年已经死了。一个解决方法可能是做与库d相同的事情只有在检查成功的情况下,才能使用并调用lib函数。但这并不是最优雅的解决方案。或者,你可以使用库,自己修复它。我真的不知道有其他解决问题的好方法。我尝试过使用它。这是正确的方法吗?因为现在它不会抛出错误,但图像不可见在视野中,我看见了你(Jitendra ramoliya的答案看起来有点类似于库示例中的getUriPath函数。但我不能帮你,因为我从未使用过库。你可以尝试将示例代码翻译成Java,测试它是否有效,然后将其集成到你的应用程序中。有没有办法在代码本身中解决这个问题?因为库已经过去一年了。一个解决方法可能是做与库相同的事情,并且只有在检查成功时才调用lib函数。但这并不是最优雅的解决方案。或者,你可以使用库,自己修复它。我真的不知道有什么其他好的方法来解决这个问题。我尝试过使用这个方法这是正确的方法吗?因为现在不会抛出错误,但图像在视图中不可见!:(Jitendra ramoliya的答案看起来有点类似于库示例中的getUriPath函数。但我不能帮你,因为我从未使用过库。你可以尝试将示例代码翻译成Java,测试它是否有效,然后将其集成到你的应用程序中