java.lang.IllegalArgumentException: параметр, указанный как ненулевой, является нулем - PullRequest
0 голосов
/ 30 сентября 2018

получение java.lang.IllegalArgumentException: параметр, заданный как ненулевой, является нулевым, с намерением камеры в Kotlin, но в JAVA этот код работает.Я очень сбиваю с толку, почему это происходит.

после захвата изображения Я получаю эту ошибку и сбой приложения.

try {
                        val imageFile = createImageFile()
                        val callCameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
                        if(callCameraIntent.resolveActivity(packageManager) != null) {
                            val authorities = packageName + ".provider"
                            val imageUri = FileProvider.getUriForFile(this, authorities, imageFile)
                            callCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
                            startActivityForResult(callCameraIntent, CAMERA_REQUEST_CODE)
                        }
                    } catch (e: IOException) {
                        Toast.makeText(this, "Could not create file!", Toast.LENGTH_SHORT).show()
                    }



 fun createImageFile(): File {
        val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
        val imageFileName: String = "JPEG_" + timeStamp + "_"
        val storageDir: File = getExternalFilesDir(Environment.DIRECTORY_PICTURES)
        if(!storageDir.exists()) storageDir.mkdirs()
        val imageFile = File.createTempFile(imageFileName, ".jpg", storageDir)
        imageFilePath = imageFile.absolutePath
        return imageFile
    }



09-30 13:32:19.145 6918-6918/app.smallbites.com.smallbites E/AndroidRuntime: FATAL EXCEPTION: main
    Process: app.smallbites.com.smallbites, PID: 6918
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1001, result=-1, data=null} to activity {app.smallbites.com.smallbites/app.smallbites.com.smallbites.ui.onboarding.AddKidActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4268)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4312)
        at android.app.ActivityThread.-wrap19(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1644)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6501)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data
        at app.smallbites.com.smallbites.ui.onboarding.AddKidActivity.onActivityResult(Unknown Source:37)

1 Ответ

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

Проблема в ваших данных, которые вы хотите передать.Вы ставите Null объект, когда он должен быть NonNull

Проверьте следующее:

  1. Разрешение для камеры
  2. Разрешение на хранение (чтение / запись)
  3. Проверьте место, где вы хотите хранить ваш файл, обычно люди борются с проблемами внутреннего / внешнего хранилища.

Также, пожалуйста,Проверьте, существует ли ваш вопрос.Я думаю, я нашел похожую проблему.

камера Android: ошибка доставки результата ResultInfo {who = null, request = 0, result = -1, data = null} для действия

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