Цель камеры не работает: она входит в блок catch и говорит: «Не удалось создать файл!»

проблема в открытии намерения камеры в android

import android.app.Activity import android.content.Intent import android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.Bundle import android.os.Environment import android.provider.MediaStore import android.support.v4.content.FileProvider import android.support.v7.app.AppCompatActivity import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.content_main.* import java.io.File import java.io.IOException import java.text.SimpleDateFormat import java.util.* class MainActivity : AppCompatActivity() { var CAMERA_REQUEST_CODE = 0 lateinit var imageFilePath:String override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(toolbar) fab.setOnClickListener { view -> try{ val imageFile=createImageFile() val callCameraIntent= Intent(MediaStore.ACTION_IMAGE_CAPTURE) if(callCameraIntent.resolveActivity(packageManager)!=null) { val authorities=packageName+".fileprovider" val imageUri= FileProvider.getUriForFile(this,authorities,imageFile) callCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri) startActivityForResult(callCameraIntent, CAMERA_REQUEST_CODE ) } } catch (e:Exception) { Toast.makeText(this,"Could not create" + " file!",Toast.LENGTH_SHORT).show() } } } 

// MY ACTIVITYRESULT FUNCTION

  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when(requestCode) { CAMERA_REQUEST_CODE -> { if(resultCode == Activity.RESULT_OK) { photoImageView.setImageBitmap(setScaledBitmap()) } } else -> { Toast.makeText(this,"Unrecognized " + "result code",Toast.LENGTH_SHORT).show() } } } 

// MY ACTIVITYRESULT FUNCTION

  @Throws(IOException::class) fun createImageFile(): File { val timestamp=SimpleDateFormat("yyyyMMdd_HHmmss",Locale.US).format(Date()) val imageFileName = "JPEG_"+timestamp + "_" val storageDir=getExternalFilesDir(Environment.DIRECTORY_PICTURES) if(!storageDir.exists()) { storageDir.mkdirs() } val imageFile= createTempFile(imageFileName,".jpg",storageDir) imageFilePath=imageFile.absolutePath return imageFile } fun setScaledBitmap():Bitmap{ val imageViewWith =photoImageView.width val imageViewHeight =photoImageView.height val bmOptions=BitmapFactory.Options() bmOptions.inJustDecodeBounds=true BitmapFactory.decodeFile(imageFilePath,bmOptions) val bitmapWidth=bmOptions.outWidth val bitmapHeight=bmOptions.outHeight val scaleFactor= Math.min(bitmapWidth/imageViewWith,bitmapHeight/imageViewHeight) bmOptions.inSampleSize=scaleFactor bmOptions.inJustDecodeBounds=false return BitmapFactory.decodeFile(imageFilePath,bmOptions) } } // MANIFEST <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hi.httpwww.hi"> <uses-permission android:name="android.permission.CAMERA"></uses-permission> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:authorities="$(applicationId).fileprovider" android:name="android.support.v4.content.FileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:resource="@xml/filepaths" android:name="android.support.FILE_PROVIDER_PATHS"/> </provider> </application> </manifest> // filepaths.xml <?xml version="1.0" encoding="utf-8"?> <paths> <external-files-path name="intent_images" path="Pictures"/> </paths> 

Я столкнулся с проблемой в вышеприведенном коде. Когда я начинаю свою деятельность, он говорит, что не может открыть файл. Это правильное поведение, или я делаю что-то неправильно? не призывая к уничтожению моей деятельности, он снова приходит внутрь на создание. Нужна помощь. Спасибо.

Intereting Posts
Использование функции «с» Общие ограничения на один конструктор Пользовательские представления Android с Kotlin Kotlin (Mutable) List <(raw) kotlin.Any?> Cast to List <JsonObject> Переменные не инициализируются должным образом при инициализации в абстрактной абстрактной функции, вызванной из конструктора или блока init Встроенные функции Kotlin и методы Android Kotlin: Intrinsics.areEqual бесконечный цикл (переполнение стека) Как настроить веб-проект с помощью Kotlin в фоновом и в браузере? Как запустить торнадо fx привет мир с java 7 Как код Kotlin запускается в приложении для Android и как он отличается от Java? Маркер Google Map не работает Nullability и LiveData с Kotlin Программирование создания пейджера представления в панели вкладок, но просмотр содержимого пейджера прокручивается через вкладки Литералы класса Kotlin с пустой левой стороной еще не поддерживаются? Дезертициализация поля, которое может быть одним из двух типов данных с использованием Moshi