You need to enable JavaScript to run this app. Kotlin出现“!=操作符无法应用于String与Int类型”报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin出现“!=操作符无法应用于String与Int类型”报错如何解决

编译错误根因
  • 括号位置书写错误,错误将权限判断的比较逻辑塞进了ContextCompat.checkSelfPermission()的方法参数范围内
  • 该方法的参数要求为:第一个传入上下文对象,第二个传入String类型的目标权限标识;错误写法里把android.Manifest.permission.READ_EXTERNAL_STORAGE != PackageManager.PERMISSION_GRANTED整段内容当成了第二个参数
    • 其中android.Manifest.permission.READ_EXTERNAL_STORAGE是String类型的权限常量,PackageManager.PERMISSION_GRANTED是Int类型的授权状态常量
    • 既存在类型不匹配(给方法传了非String类型的参数),又因为直接用!=连接String和Int类型,直接触发“!=操作符无法应用于String类型与Int类型”的编译报错。
修正方案

核心调整是将!=的比较逻辑移出方法参数范围,让方法正确接收两个合法入参,修正后可直接编译运行的代码如下:

activity?.let {
    val permissionCheckResult = ContextCompat.checkSelfPermission(
        it.applicationContext,
        android.Manifest.permission.READ_EXTERNAL_STORAGE
    )
    // 类型比较逻辑放在if判断括号内
    if (permissionCheckResult != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(
            arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE),
            1
        )
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 10:45:05