AWS Amplify+Android Studio导入文件后仍报setSignedIn未解析引用错误
问题原因
你的报错是类导入冲突导致的:
在Backend.kt的导入列表中,同时存在两个UserData类的引用:
- 系统自带类:
import android.service.autofill.UserData(Android 自动填充框架提供的类) - 自定义单例类:你自己写的
com.wcsng.dlocapp.UserData
Kotlin 代码解析时优先匹配了先导入的系统UserData类,而这个系统类根本不存在setSignedIn方法,因此触发未解析引用报错。你写的import com.wcsng.dlocapp.UserData.setSignedIn导入被覆盖,没有生效。
解决步骤
- 删除无效导入:删掉
Backend.kt里完全没用的系统UserData导入行:
import android.service.autofill.UserData // 直接删除这一行
- 调整自定义类导入:将原来的方法级导入改成类导入,你的
UserData是Kotlin单例(object修饰),直接导入类即可调用所有公开方法:
把原来的import com.wcsng.dlocapp.UserData.setSignedIn替换为:
import com.wcsng.dlocapp.UserData
- (可选冲突处理)如果你后续确实需要同时使用系统
UserData和自定义UserData,可以给自定义类加别名导入避免冲突:
import android.service.autofill.UserData import com.wcsng.dlocapp.UserData as AppUserData
调用你自己的单例方法时写AppUserData.setSignedIn(withSignedInStatus)即可。
修改完成后清理项目缓存重新编译,报错就会消失。
内容的提问来源于stack exchange,提问作者Kanishka
相关产品推荐
相关产品推荐

