HarmonyOS 鸿蒙Next中卓易通(也就是安卓应用运行在5.0系统)这个异常要不要处理?

HarmonyOS 鸿蒙Next中卓易通(也就是安卓应用运行在5.0系统)这个异常要不要处理?

我发现我的安卓应用运行在Harmony5.0时选择图片然后调用系统的裁剪功能是报错:

aused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.camera.action.CROP dat=content://com.xx.xxx.fileprovider/selector/selector_img.jpg typ=image/* flg=0x43 (has extras) }

21 at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2179) 22 at android.app.Instrumentation.execStartActivity(Instrumentation.java:1787) 23 at android.app.Activity.startActivityForResult(Activity.java:5721) 24 at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:728) 25 at android.app.Activity.startActivityForResult(Activity.java:5645) 26 at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:709) 27 at com.xx.xxx.lib_base.image_selector.ImageSelector.cropImage(ImageSelector.kt:154) 28 at com.xx.xxx.pages.create_novel.CreateNovelActivity$initView$2$1.onImage(CreateNovelActivity.kt:59) 29 at com.xx.xxx.lib_base.image_selector.ImageSelector.onActivityResult(ImageSelector.kt:200) 30 at com.xx.xxx.zuoziniao.pages.create_novel.CreateNovelActivity.onActivityResult(CreateNovelActivity.kt:106) 31 at android.app.Activity.dispatchActivityResult(Activity.java:8947) 32 at android.app.ActivityThread.deliverResults(ActivityThread.java:6909)

我现在的问题是:如果要兼容卓易通的话这个异常要怎处理?卓易通的图片裁剪功能是哪个Intent


更多关于HarmonyOS 鸿蒙Next中卓易通(也就是安卓应用运行在5.0系统)这个异常要不要处理?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

标题

文本内容

子标题

更多文本内容

更多关于HarmonyOS 鸿蒙Next中卓易通(也就是安卓应用运行在5.0系统)这个异常要不要处理?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,卓易通(安卓应用兼容运行)出现的异常需要处理。鸿蒙Next对安卓应用的兼容性支持有限,异常可能导致应用崩溃或功能失效。处理方法包括:检查应用是否在鸿蒙兼容列表内,更新应用到最新版本,使用DevEco Studio工具分析具体异常类型。对于关键业务场景,建议优先开发鸿蒙原生应用。

这个异常需要处理,因为HarmonyOS Next不再支持直接调用安卓系统的CROP Intent。解决方案是:

  1. 使用HarmonyOS自带的图片处理能力替代:
// 使用HarmonyOS的图片选择器
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, REQUEST_CODE);
  1. 如果要保留安卓兼容逻辑,需要先检测系统类型:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HARMONYOS) {
    // 使用HarmonyOS方式
} else {
    // 原有安卓方式
    Intent cropIntent = new Intent("com.android.camera.action.CROP");
    // 设置参数...
}
  1. 对于卓易通环境,建议直接使用第三方图片裁剪库如uCrop或实现自己的裁剪界面,这样能确保在所有环境下正常工作。

关键点是HarmonyOS Next不再兼容安卓的私有Intent,需要采用标准方式或系统提供的API。

回到顶部