【发布时间】:2021-03-18 02:09:57
【问题描述】:
我使用这个库在 Android Studio 中裁剪图像:https://github.com/ArthurHub/Android-Image-Cropper
我可以上传照片并将其发送到我的 Firebase 存储,但是当我打开裁剪工具并按返回箭头退出时,应用程序崩溃了。错误是:
原因:java.lang.IllegalStateException:结果不能为空
第 4 行的“var uri = result.uri”中的错误引用了我的代码
我的代码:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
var result = CropImage.getActivityResult(data)
var uri = result.uri
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
val bitmap = MediaStore.Images.Media.getBitmap(context?.contentResolver, uri)
imageView12.setImageBitmap(bitmap)
}
if (uri != null) {
val ref = storageReference!!.child("" + UUID.randomUUID())
ref.putFile(uri!!)
.addOnSuccessListener {
ref.downloadUrl.addOnSuccessListener { uriLink ->
currentUser.profileImage = uriLink.toString()
saveData()
progressDialog.dismiss()
Toast.makeText(activity, "Uploaded", Toast.LENGTH_SHORT)
.show()
}
}
.addOnFailureListener { e ->
progressDialog.dismiss()
Toast.makeText(activity, "Failed " + e.message, Toast.LENGTH_SHORT)
.show()
}
.addOnProgressListener { taskSnapshot ->
val progress = 100.0 * taskSnapshot.bytesTransferred / taskSnapshot
.totalByteCount
progressDialog.setMessage("Uploaded " + progress.toInt() + "%")
}
}
}
我开始裁剪活动:
context?.let {
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.setAspectRatio(1, 1)
.start(it, this)
};
我该如何解决这个问题?
【问题讨论】:
-
嘿,您为裁剪共享的库给出了如何从
CropImage Activity获取数据的正确解释,请再次查看该自述文件,您会找到解决方案。 -
我确实看过并尝试了他们的代码,您认为解决方案是什么?
-
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) 应该在 var result = CropImage.getActivityResult(data) 行之上
标签: android firebase kotlin android-activity firebase-storage