Android java.lang.SecurityException: Failed to find provider异常说明

Android8.0 适配ContentResolver解决java.lang.SecurityException: Failed to find provider null for user 0; 对于没有适配Android8.0+的设备在使用ContenResolver时会出现java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority的异常. 原因是在8.0以后,需要使用一个定义的应用内的C... 阅读详情
AI摘要

本文解析了在Android8.0及以上版本中,由于ContentProvider配置不当导致的java.lang.SecurityException异常。详细介绍了如何通过创建自定义ContentProvider、在AndroidManifest.xml中正确声明provider以及使用Uri.Builder.authority()确保authoritykey一致来解决此问题。

java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority

产生上述异常的原因可能为:在Android 8.0 设备以上的时候, 没有提供相对应authority key的ContentProvider。

原因如下:

Android 8.0 行为变更:https://developer.android.com/about/versions/oreo/android-8.0-changes#ccn

解决方法:

  1. 新建个XXContentProvider继承ContentProvider(如果有需要的话建议把ContentProvider中的abstract方法重新实现下,提升安全性)。
  2. 在AndroidManifest.xml 声明provider,并且在provider中添加授权key。
  3. 在使用notifyChange方法的时候,给相应的Uri添加authority key(Uri.Builder.authority(xxx),此处的authority key要与AndroidManifest文件中的key一致。)

示例:

自定义ContentProvider

AndroidManifest.xml

使用了activeAndroid的朋友可以直接使用com.activeandroid.content.ContentProvider这个实现类。

监测数据变化,程序一直报错 第一个程序用于操作数据库中的数据,第二个程序用于监测数据库中数据的变化,当数据库中的数据发生变化时,检测数据库的程序会立即响应。第一个程序单独运行时是没有问题的,第二个程序运行后就报错了。第二个程序是监测第一个程序数据库中数据的变化。请问各位大佬如何解决这个问题呢。 阅读详情

相关推荐

Android 8.0 java.lang.SecurityException: Failed to find provider <authority> for user 0 产生原因以及解决方法。

Android 版本每次的更新除了新功能之外,通常还伴随着各种 API 的更新以及随之而来的异常,8.0 的更新也不例外。 当我们在 8.0 或 8.1 系统上使用 26 或以上的版本的 SDK 时,调用 ContentResolver 的 notifyChange 方法通知数据更新,或者调用 ContentResolver 的 registerContentObserver 方法监听数据变化时...

mikechenmj的博客 1万+

Caused by: java.lang.SecurityException: Failed to find provider null for user 0; expected to find a

如果你是使用了ActiveAndroid 数据库,出现以下问题 Caused by: java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority 原因: 当我们在 8.0 或 8.1 系统上使用 26 或以上的版本的 SDK 时,调用 ContentResolver 的 notifyChange 方法通

u014035162的专栏 2888

Android 7.0+覆盖安装适配:FileProvider权限墙详解与实战

在Android应用开发中,应用间安全共享文件是一个基础且关键的技术需求。其核心原理在于Android系统通过沙盒机制隔离应用数据,以保障用户隐私和系统安全。传统的`file://` URI方式存在安全风险,因此Android 7.0引入了`FileProvider`组件,它作为`ContentProvider`的子类,通过生成包含临时访问权限的`content://` URI,实现了对文件共享的精细化、安全化控制。这一机制的技术价值在于,它强制开发者遵循最小权限原则,有效防止了恶意应用随意访问其他应用的私

dengjuanshou7445的博客 1640

expected to find a valid ContentProvider for this authority&ContentProvider 跨进程进行数据共享

Android12 中更改了应用之间的交互方式,需要在Manifest 中使用<queries>标签声明要访问的 App: 在B demo 中AndroidManifest.xml通过<queries> 声明了A demo 的包名。 <queries> <package android:name="com.lixin.contentobserverd"></package> </queries> 运行可以正常使用了。 .

zhao_houbao的专栏 3755

Android 7.0+覆盖安装适配:FileProvider配置与版本兼容性实战

在Android开发中,应用间文件共享与系统权限管理是基础且关键的技术点。其核心原理在于Android系统通过沙盒机制隔离应用数据,保障安全性。随着Android版本迭代,Google逐步收紧权限策略,从Android 7.0引入的FileProvider机制,到Android 10的作用域存储,再到Android 11的细粒度权限控制,每一次升级都旨在提升用户隐私保护。这些变化的技术价值在于构建更安全的移动生态,但同时也给开发者带来了适配挑战,尤其是在应用内更新、文件分享等需要跨应用传递文件的场景。本文聚

weixin_34268753的博客 392

Springer期刊LaTeX模板中参考文献格式选择与编译错误的快速修复指南

本文针对Springer期刊LaTeX模板中参考文献编译后显示问号的常见问题,提供了快速修复指南。核心在于正确选择并配置与期刊匹配的参考文献格式文件(.bst),并执行标准的四步编译流程。文章详细解释了问题根源,并给出了从查找正确.bst文件到修改代码、执行编译的完整解决方案,帮助作者高效解决投稿中的技术障碍。

weixin_29266007的博客 401

java.lang.SecurityException: Failed to find provider null for user 0

当我们在 8.0以上 系统调用 ContentResolver 的 notifyChange 方法通知数据更新,或者调用 ContentResolver 的 registerContentObserver 方法监听数据变化时,会出现异常:java.lang.SecurityException: Failed to find provider null for user 0; expected to...

gjd1988的专栏 2442

时间卷积网络(TCN):结构+pytorch代码

文章目录TCNTCN结构1-D FCN的结构因果卷积(Causal Convolutions)膨胀因果卷积(Dilated Causal Convolutions)膨胀非因果卷积(Dilated Non-Causal Convolutions)残差块结构pytorch代码讲解 TCN   TCN(Temporal Convolutional Network)是由Shaojie Bai et al....

Leon_winter的博客 11万+

java.lang.SecurityException: Failed to find provider com.test.provider for user 0异常

Caused by: java.lang.SecurityException: Failed to find provider com.test.provider for user 0; expected to find a valid ContentProvider for this authority 错误原因是因为 AndroidManifest.xml 中 authorities 与 MyContentProvider 中Uri 不一致 <provider

weixin_42789301的博客 1873

波分复用技术原理

波分复用原理 把不同波长的光信号复用到同一根光纤中进行传送,这种方式我们把它叫做波分复用( Wavelength Division Multiplexing ) 一根光纤被划分为多个波道,多个波长以一定的间隔隔开,在光纤中独立传输。 波分复用应用演示 如果将WDM系统看作交通系统,光纤可以看作是多个车道的公用道路。 各种类型的业务就像货物一样,被打包装载到车辆中。 车辆按照分配的车道行驶至目的地,完成货物的运输。 想要提高波分复用系统的传输容量,就要增加波道数量或是提升单波传...

m0_63251770的博客 9997

网络变压器等效电路及网络变压器中间抽头作用详解

       华强盛电子导读:要详细了解网络变压器周边EMC管控及网络变压器BOB-SMITH电路的连接原理,首先我们对网络变压器的认识及其电路各参数影响都要有个简要的认识,本文,对非理想网络变压器等效电路做一个详细的分析,其中重点讨论一下网络变压器中间抽头的作用其影响                          网络变压器等效电路及                        ...

网络变压器专业资料 6005

Android N 7.0 应用间共享文件(FileProvider)

Android N 之前的 Uri 常规Uri有两种: 媒体文件的Uri是content://, 表示这是一个数据库数据。去数据库查询正常返回。 其他的文件Uri是file://, 表示这个是一个文件。这个uri是通过Uri.fromFile(File file)方法生成。 Android N 之前,这些uri可以传递到其他应用。 Android N 中共享文件 Android

薛瑄的博客 13万+

智能车八邻域图像算法

智能车八邻域图像算法

技术缝合怪的博客 4万+

android10安装谷歌拼音输入法4.5.2异常: java.lang.SecurityException: Failed to find provider user_dictionary

UserDictionaryProvider 库源码路径:​/android/packages/providers/UserDictionaryProvider/​。编译前可以先从文件管理器确认下是否是本问题造成。

隋缘 452

QEMU pcie config空间访问机制

而pci_host_conf/data_le_ops的定义是在hw/pci/pci-host.c里,对于0xCF8端口的处理,因为是地址选通,所以只需要在write的时候记录、read的时候返回记录的值即可。而pci_host_config_write/read_common接口,在前256Bconfig空间的模拟中,也同样是会调用这个接口,所以后续的处理都是一样的。这是真实的硬件设计,而对于QEMU+KVM的虚机场景,显然是要基于硬件实现和虚拟化的需求设计虚机访问config空间的完整流程。

leiyanjie8995的博客 1950

无人船 | 基于ROS的轻量级多无人艇自主导航仿真框架

无人水面艇USV是海上自主无人系统的关键组成部分,在民用、军用领域应用广泛,例如海上救援、水质测量、扫雷反潜等,因此对USV导航算法的研究具有重要意义。为了便于进行USV相关算法的验证与部署,本文介绍的这套基于ROS的多无人艇的自主导航仿真平台,轻量化地实现了建图、规划、控制等多种功能,同时自研框架保证了功能的高度可拓展和可定制

FRIGIDWINTER的博客 8002

Flutter分享功能深度解析:从share到share_plus的跨平台实践

分享功能是移动应用的基础能力,其本质是通过系统级Intent(Android)或UIActivityViewController(iOS)触发跨App内容分发。实现原理涉及URI权限授予、MIME类型匹配、沙盒文件路径转换及原生API调用封装。技术价值在于统一Dart层接口的同时,精准适配各平台安全模型与行为差异。典型应用场景包括电商商品分享、教育资料分发、工具类截图传播等。本文聚焦Flutter生态中share插件的演进痛点,深入剖析share_plus如何解决Android 12+权限异常、iOS微信S

weixin_34341117的博客 309

ARFoundation系列讲解-教程目录

一、教程目录 ARFoundation快速入门-01简介 ARFoundation快速入门-02环境搭建 ARFoundation快速入门-03环境配置之iOS ARFoundation快速入门-04环境配置之Android ARFoundation快速入门-05ARKit设备支持列表 ARFoundation快速入门-06ARCore设备支持列表 ARFoundation快速入门-07检查设备支持 ARFoundation快速入门-08平面检..........

a451319296的博客 3万+

Android 之永乐大典

如下编译脚本逻辑,这里通过DISABLE_DEXPREORT_CHECK宏控来失能是否进行DEXPREOPT优化检测,如果为true则失能,默认需要进行优化检测,通过过滤所有PRODUCT_PACKAGES安装的应用,即先过滤ALL_DEFAULT_INSTALLED_MODULES宏控指定列表里面的应用,然后在过滤DEXPREOPT_SYSTEMSERVER_ARTIFACTS列表中指定的需要dexpreort优化的系统jar。Android DexOpt前世今生:参考。

qq_27672101的博客 1899

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Flutter Android未知来源安装权限全链路适配指南

Android未知来源安装权限(INSTALL_PACKAGES)是系统级白名单机制,自Android 8.0起不再支持常规动态申请,必须通过用户手动开启。其核心原理是 PackageManager 对应用包名的独立授权校验,状态不可信于Dart层——标准API canRequestPackageInstalls() 在国产ROM中兼容性差,真实检测需结合反射调用 isPackageInstallerEnabled()。该权限直接决定APK灰度分发、热更新、内测安装等关键场景能否落地,尤其影响Flutter

weixin_34252090的博客 201

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Failed to find provider aaa for user 0; expected to find a valid ContentProvider for this authority

在9.0上使用ContentObserver报错,Failed to find provider aaa for user 0; expected to find a valid ContentProvider for this authority 代码: //注册ContentObserver private void registerResolver(){ ContentR...

Framework-coder的博客 3092

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority

Android 8.0以上的手机,如果集成了ActiveAndroid,会遇到这个错误。 解决方式 找到项目下面的AndroidManifest.xml文件,在application结点下面添加以下代码: <provider android:name="com.activeandroid.content.ContentProvider" android...

weixin_30622107的博客 675

ContentProvider详解

本文基于android 12.0 主要讲解的是A进程访问B进程的ContentProvider的流程 进程A查询ContentProvider 运行在A进程中, 主要涉及到的类如下: frameworks/base/core/java/android/content/ContentResolver.java frameworks/base/core/java/android/app/ContextImpl$ApplicationContentResolver.java frameworks/base/cor

xiaoyantan的博客 4820

ActiveAndroid 在8.0系统崩溃问题

Caused by: java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority at android.os.Parcel.readException(Parcel.java:2016...

qq_36356379的博客 1021

ActiveAndroid在8.0以上系统崩溃 java.lang.SecurityException: Failed to find provider null for user 0;

java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority 使用ActiveAndroid适配9.0系统的时候出现的,解决借鉴文章: https://blog.csdn.net/hellopeng...

daisysmilee的博客 873

Android之自定义ContentProvider的实现(Very Very 用心)

刚开始学习ContentProvider时是学的系统的ContentProvider,没碰到什么问题,但是在学习自定义ContentProvider的实现时,唉,碰到好几个问题,花了我好多时间。 碰到的问题: 1.java.lang.IllegalArgumentException: column '_id' does not exist 创建数据表时插入一个名为_id的列,类型为自增量,因为在使用Cursor相关的Adapter时需要用到这个列 首先看一下我的项目结构,你就知道要写哪些类和..

qq_45682662的博客 1138
上一篇: Android自定义View链接系统输入法(自定义验证码组件)
下一篇: Swagger2 关于Map参数在API文档中展示详细参数以及参数说明
hellopeng1
博客等级 码龄10年 66粉丝 20原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值