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

安卓VideoView播放器开发:URI导入与Binding解析错误求助

视频播放器开发:URI导入与ViewBinding解析错误解决方案

一、URI导入错误修复

res目录下的视频资源需放置在res/raw子目录中(若不存在则手动创建),且文件名仅支持小写字母、数字、下划线,不能包含大写或特殊字符。正确构建资源URI的方式如下:

// 获取视频资源的URI
val videoUri = Uri.parse("android.resource://${packageName}/${R.raw.video_file_name}")
// 绑定到VideoView
binding.videoView.setVideoURI(videoUri)

常见错误排查:

  • 未将视频放入res/raw目录,导致无法通过R.raw.xxx引用
  • URI格式错误:遗漏包名部分,或写错资源ID
  • 文件名不符合Android资源命名规范,引发资源引用失败

二、ViewBinding解析错误修复

1. 确保已启用ViewBinding

在app模块的build.gradle中开启ViewBinding功能:

android {
    compileSdk 34

    defaultConfig {
        applicationId "com.your.package.name"
        minSdk 21
        targetSdk 34
        // ...其他配置
    }

    buildFeatures {
        viewBinding true // 必须启用此选项
    }
}

2. 正确初始化Binding类

在Activity/Fragment中按规范初始化Binding对象,避免直接使用setContentView(R.layout.xxx):

import com.your.package.name.databinding.ActivityPlayerBinding

class VideoPlayerActivity : AppCompatActivity() {
    private lateinit var binding: ActivityPlayerBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 初始化Binding
        binding = ActivityPlayerBinding.inflate(layoutInflater)
        setContentView(binding.root)
        
        // 后续通过binding访问布局控件,例如:
        binding.videoView.setOnPreparedListener { mp ->
            mp.start()
        }
    }
}

常见错误排查:

  • 未启用ViewBinding却尝试引用Binding类
  • Binding类名称拼写错误:布局文件名activity_player.xml对应的Binding类为ActivityPlayerBinding(驼峰命名)
  • 初始化时未调用inflate(layoutInflater),或错误使用DataBindingUtil(若未启用DataBinding)

内容的提问来源于stack exchange,提问作者Prateek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:43:10