Android保存数据报错Failed to find provider info for com.courses.applicationcontentprovider.provider如何解决
问题解答
报错的核心原因是ContentProvider的注册权限和调用时使用的权限字符串不匹配:
- 你在
AndroidManifest.xml中给NotesProvider配置的android:authorities属性值为com.example.applicationcontentprovider.provider - 但你在
NotesDetailFragments.kt中调用插入接口时,使用的Content URI前缀是com.courses.applicationcontentprovider.provider
二者不一致导致系统无法找到你注册的ContentProvider,直接抛出IllegalArgumentException: Unknown URL异常。
修复步骤
- 统一权限字符串
二选一修改即可,建议和你的应用包名保持一致:
- 方案1:修改
AndroidManifest.xml中provider的android:authorities值为com.courses.applicationcontentprovider.provider - 方案2:修改
NotesDetailFragments.kt中构造的Content URI前缀为com.example.applicationcontentprovider.provider
- 检查URI匹配规则
打开NotesProvider实现代码,确认你已经在UriMatcher中注册了content://[你的权限字符串]/notes对应的匹配规则,没有注册的话需要补充对应配置,否则就算前缀匹配也会触发同样报错。 - 清理项目缓存后重新编译运行即可。
内容的提问来源于stack exchange,提问作者Pablo Rodrigues
相关产品推荐
相关产品推荐

