Не удалось получить доступ к функции одно действие из другого действия в kotlin - PullRequest
0 голосов
/ 09 июля 2020

Я создал представление изображения для выбора мгновенной камеры. Это рассматривается во втором упражнении. Затем я вызвал функцию в первом действии. Но я получаю эту ошибку. Пожалуйста, дайте решение. Здесь я поделился своим кодом. Спасибо andvance.

 First Activity
 --------------
 private val createHomeworkActivity = CreateHomeworkActivity()

  when (v?.id){
        R.id.take_a_photo  -> createHomeworkActivity.tapOnCamera()
    }

 Second Activity
 ---------------

fun tapOnCamera(){

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED
            || ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE), RC_PERM_PICK_IMAGE)
    } else {
        
        openCamera()
       
        iv_multi_image_layout.visibility=View.VISIBLE

    }

}

Это ошибка ... java .lang.NullPointerException: Попытка вызвать виртуальный метод int android .content.Context. checkPermission (java .lang.String, int, int) 'для ссылки на нулевой объект в android .content.ContextWrapper.checkPermission (ContextWrapper. java: 743) в android .support.v4.content. ContextCompat.checkSelfPermission (ContextCompat. java: 544)

1 Ответ

0 голосов
/ 09 июля 2020

Переместите вашу функцию в другой класс. Не использовать в вашей деятельности.

Вы просто создаете экземпляр SecondActivity. Но у secondActivity еще нет контекста. Таким образом, он генерирует исключение нулевого указателя. Какая ошибка ниже

android .content.Context.checkPermission (java .lang.String, int, int) 'для ссылки на нулевой объект в

Вы можете создать новый класс. Вы можете создать класс stati c. И создаем функцию; входные параметры (context: Context) и возвращает логическое значение (разрешение предоставлено или не предоставлено). Этот метод как раз отвечает за разрешение. Не использовать для openCamera ()

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