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

升级Android SDK至34后添加RECEVER_NOT_EXPORTED标志编译报错

解决“无法找到符号RECEIVER_NOT_EXPORTED”的问题

1. 修正拼写错误

你使用的RECEVER_NOT_EXPORTED是拼写错误,正确的常量名称是RECEIVER_NOT_EXPORTED(注意拼写为RECEIVER而非RECEVER)。

2. 升级Build Tools版本

当前配置的buildToolsVersion "30.0.3"版本过低,无法适配SDK 34的新API定义。将其修改为与compileSdkVersion 34匹配的版本,例如:

buildToolsVersion "34.0.0"

(可在Android Studio的SDK管理器中查看34系列Build Tools的最新可用版本)

3. 匹配Gradle插件与Gradle版本

Gradle 7.2对应的Android Gradle Plugin(AGP)版本应为7.2.x(如7.2.2)。检查项目根目录下的build.gradle文件,确保插件版本正确:

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.2'
    }
}

4. 确保正确引用常量

在使用该常量的代码文件中,需确认已导入android.content.Context类,或直接通过Context.RECEIVER_NOT_EXPORTED引用:

import android.content.Context;

// 使用示例
registerReceiver(receiver, intentFilter, Context.RECEIVER_NOT_EXPORTED);

5. 兼容低版本SDK

由于你的minSdkVersion为21,而RECEIVER_NOT_EXPORTED是API 31(Android 12)才引入的常量,需添加版本判断避免低版本设备崩溃:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
    registerReceiver(receiver, intentFilter, Context.RECEIVER_NOT_EXPORTED);
} else {
    registerReceiver(receiver, intentFilter);
}

内容的提问来源于stack exchange,提问作者박성호

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:52:34