Я следовал примеру «Сфотографируйся» с веб-сайта Android (конвертируя код в Kotlin, как я иду вперед).Все отлично работает, когда все в одном классе.Затем я решил передать ответственность за предоставление объекта файла и пути к строке другому классу.Но мое приложение начало падать (сообщение об ошибке ниже).Что я должен узнать здесь?
package com.dj.camera1
import android.os.Environment
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
import java.util.*
class UniqueName {
companion object {
var mCurrentPhotoPath: String = ""
}
@Throws(IOException::class)
internal fun createImageFile(): File {
// Create an image file name
var timeStamp = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
var imageFileName = "JPEG_" + timeStamp + "_"
var storageDir:File = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
var image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
)
// Save a file: path for use with ACTION_VIEW intents
mCurrentPhotoPath = image.getAbsolutePath()
return image
}
}
Я получаю IOException!
(отредактировал код выше, чтобы отразить изменение кода и изменение каталога на общедоступный)
Мой код в mainacctivity выглядит следующим образом:
lateinit var photoContainer:File
try {
photoContainer = UniqueName().createImageFile()
} catch (c:IOException){
Log.d("MainActivity","PhotoContainer couldn't be initialised")
}