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

AIDL文件不识别@Nullable等注解报'@' unexpected错误,如何启用注解支持?

AIDL @nullable注解编译报错解决方法

核心原因

你遇到的'@' unexpected编译错误不是注解本身不合法,是缺少AIDL注解包的导入声明,或Android Gradle插件(AGP)版本过低不支持空性注解。


解决步骤

  • 确认你的AGP版本在3.6.0及以上,低于该版本的AIDL编译器没有空性注解支持能力
  • 在AIDL文件顶部添加平台原生Nullable注解的导入语句,注意不要混用AndroidX的Nullable注解,AIDL编译器仅识别android.annotation包下的原生注解:
import android.annotation.Nullable;
  • 方法返回值前的注解使用AIDL规定的全小写@nullable即可,修改后的完整AIDL示例如下:
package com.example.yourpackage;

// 导入必要的类
import android.annotation.Nullable;
import com.example.yourpackage.User;

interface IUserAuthService {
    @nullable User registerUser(String name);
}
  • 如果项目开启了代码混淆,需要在proguard规则中添加以下配置,避免AIDL相关类和注解被误裁剪:
# 保留AIDL相关类与注解
-keep class android.annotation.Nullable { *; }
-keep class * implements android.os.Parcelable { *; }
-keep interface * extends android.os.IInterface { *; }

额外注意

如果是Java/Kotlin实现的服务端代码,你可以给对应方法添加AndroidX的@Nullable注解做本地代码静态检查,该注解和AIDL文件中的@nullable注解独立生效,互不冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:48:03