我正在关注 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!
(编辑了上面的代码以反映代码的变化和目录到公共的变化)
我在 mainactivity 中的代码如下:
lateinit var photoContainer:File
try {
photoContainer = UniqueName().createImageFile()
} catch (c:IOException){
Log.d("MainActivity","PhotoContainer couldn't be initialised")
}