问题描述:A页面有个按钮,选择图库照片裁剪,然后显示出来,一个简单的功能,在一个小米9的手机上报错。裁剪照片一直提示:"保存时发生错误,保存失败"。
问题分析:首先这个提示是系统给出的,所以是我们给系统一个错误的信息,导致系统给出了这样的提示。选择图片这一步肯定是没有错的,因为这一步我们没有给系统任何数据,应该裁剪图片时候出错了,因为在这一步,我们需要给一个裁剪的以后应该保存的路径,裁剪的代码为:
crop(data.getData(), getOutCropUri());
private Uri getOutCropUri() {
Debug.i(TAG, "preCroppedPath:" + preCroppedPath);
File outFile = new File(preCroppedPath);
File parentFile = outFile.getParentFile();
if (parentFile != null) {
if (!parentFile.exists()) {
Debug.i(TAG, "getOutCropUri :parent: is not exists");
parentFile.mkdirs();
}
}
return Uri.fromFile(outFile);
}
private void crop(Uri inUri, Uri outUri) {
if (inUri == null) {
return;
}
Debug.i(TAG, inUri + "crop" + outUri);
Intent intent = new Intent("com.android.camera.action.CROP
Android页面跳转导致组件销毁问题及解决方案

在小米9手机上,一个简单的从A页面选择照片裁剪功能出现异常,提示“保存时发生错误,保存失败”。问题在于裁剪图片时提供的保存路径包含null,原因是A页面在跳转到选择相册时被销毁,所有成员变量清空。关闭开发者选项中的“不保留活动”解决了此问题,但实际应用中应在onSaveInstanceState保存必要数据,并在onCreate恢复,以确保用户体验不受影响。此外,博主分享了个人年度总结,提到学习Kotlin并享受慢生活。
最低0.47元/天 解锁文章
530

被折叠的 条评论
为什么被折叠?



