You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActivityResultLauncher<PickVisualMediaRequest>方法无法解析,选图代码签名不存在

解决ActivityResultContracts.PickVisualMedia方法签名不存在问题(activity:1.9.2)
  • 问题原因:在androidx.activity:activity:1.9.2版本中,PickVisualMedia已移除无参构造函数,原代码使用无参构造会触发方法签名不存在错误。

  • 正确实现方式:

    1. 选取任意图片/视频
    ActivityResultLauncher<PickVisualMediaRequest> pickMedia =
        registerForActivityResult(new ActivityResultContracts.PickVisualMedia.Builder()
                .setMediaType(PickVisualMedia.ImageAndVideo.INSTANCE)
                .build(), uri -> {
            if (uri != null) {
                // 处理选中的媒体Uri
            }
        });
    
    // 启动媒体选择器
    pickMedia.launch(new PickVisualMediaRequest.Builder().build());
    
    1. 仅选取图片
    ActivityResultLauncher<PickVisualMediaRequest> pickMedia =
        registerForActivityResult(new ActivityResultContracts.PickVisualMedia.Builder()
                .setMediaType(PickVisualMedia.ImageOnly.INSTANCE)
                .build(), uri -> {
            if (uri != null) {
                // 处理选中的图片Uri
            }
        });
    
    // 启动图片选择器
    pickMedia.launch(new PickVisualMediaRequest.Builder().build());
    
    1. 简化写法(默认选取任意媒体)
    ActivityResultLauncher<PickVisualMediaRequest> pickMedia =
        registerForActivityResult(ActivityResultContracts.PickVisualMedia.create(), uri -> {
            if (uri != null) {
                // 处理选中的媒体Uri
            }
        });
    
    // 启动选择器
    pickMedia.launch(new PickVisualMediaRequest.Builder().build());
    
  • 注意事项:启动选择器时必须传入PickVisualMediaRequest实例(即使无额外配置,也要通过Builder构建),否则会导致调用失败。

内容的提问来源于stack exchange,提问作者Style-7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:25:05