Android中@Retention与@IntDef找不到符号类错误解决及输入值限定实现
解决@IntDef和@Retention找不到符号的问题
这个问题很常见,本质是你缺少了包含这些注解的依赖库,或者没有正确导入对应的包。我给你一步步梳理解决方案:
1. 添加AndroidX Annotation依赖
首先打开模块级别的build.gradle文件(一般是app/build.gradle),在dependencies代码块中添加AndroidX注解库的依赖:
dependencies { // 可以替换成最新版本号,比如1.7.0 implementation "androidx.annotation:annotation:1.6.0" }
添加完成后,点击Android Studio右上角的「Sync Now」同步项目,让依赖生效。
2. 确保导入正确的包
在你的注解类文件顶部,导入以下对应包:
import androidx.annotation.IntDef; import androidx.annotation.Retention; import static androidx.annotation.RetentionPolicy.SOURCE;
如果你还在使用旧的Android Support库(不推荐),依赖要换成:
implementation "com.android.support:support-annotations:28.0.0"
对应的导入包是:
import android.support.annotation.IntDef; import android.support.annotation.Retention; import static android.support.annotation.RetentionPolicy.SOURCE;
3. 验证修正后的代码
调整后的完整代码示例如下:
import androidx.annotation.IntDef; import androidx.annotation.Retention; import static androidx.annotation.RetentionPolicy.SOURCE; @Retention(SOURCE) @IntDef({InputTypes.TYPE_ONE, InputTypes.TYPE_TWO}) public @interface InputTypes { int TYPE_ONE = 0; int TYPE_TWO = 1; }
现在重新构建项目,那些「找不到符号」的错误应该就消失了。如果还是有问题,可以再尝试一次Invalidate Caches/Restart,同时检查gradle.properties里是否开启了android.useAndroidX=true(使用AndroidX的前提下)。
内容的提问来源于stack exchange,提问作者nb2998
相关产品推荐
相关产品推荐

