XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,
android开发之多个provider的解决方法:
下面的报错针对android7.0及以上都是一个问题就是provider的authorities没有对上。
看下报错代码:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object referenceat android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:604)at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:578)at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:416)at com.mchsdk.paysdk.utils.YhshUtils.install(YhshUtils.java:147)at com.mchsdk.paysdk.utils.YhshUtils.access$200(YhshUtils.java:53)at com.mchsdk.paysdk.utils.YhshUtils$1.onSuccess(YhshUtils.java:113)at com.lidroid.xutils.http.HttpHandler.onProgressUpdate(HttpHandler.java:218)at com.lidroid.xutils.task.PriorityAsyncTask$InternalHandler.handleMessage(PriorityAsyncTask.java:385)at android.os.Handler.dispatchMessage(Handler.java:106)at android.os.Looper.loop(Looper.java:193)at android.app.ActivityThread.main(ActivityThread.java:6669)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
出现上面问题的原因很多:我说下我遇到的
我这边是SDK有一份provider自己APP也有一份provide然后因为都是定义的android.support.v4.content.FileProvider虽然authorities不同但是经过我测试这样后者的provider会被覆盖,也就是说当后者的provider去查找authorities的时候查找的是前者的authorities导致找不到指定的路径就报错了,这种有多个provider的冲突问题解决办法非常简单
直接自定义Provider即可:
package com.xigu.zhenghesdk.demo;import android.support.v4.content.FileProvider;/*** @author Xiayiye5* 2020年8月5日11:09:51* 下面自定义FileProvider是为了解决游戏里面已定义了FileProvider的冲突问题* 如果你项目使用的最新androidX 库,FileProvider导入使用:androidx.core.content.FileProvider* 如果你使用的非androidX库,FileProvider导入使用:android.support.v4.content.FileProvider*/
public class XiaYiYe5FileProvider extends FileProvider {public XiaYiYe5FileProvider() {}
}
新建provider如上图:然后在清单文件汇总配置下即可:
<!--配置Android7.0保存文件的路径--><!--请将com.xigu.zhenghesdk.demo改成你自己的游戏包名--><providerandroid:name="com.xigu.zhenghesdk.demo.XiaYiYe5FileProvider"android:authorities="${applicationId}.xiayiye5"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/apk_paths" /></provider>
个人建议:
1.上图代码中的authorities这个值一定要做到唯一不要和别的provider的authorities名字一样
2.上图中的resource资源路劲也尽量保持名字不重复例如我下载apk路劲定义的名字叫apk_paths
3.上图authorities的值一定要和你安装apk的值一致否则报错如下图一致:
XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,相关推荐
- Android doc译文|Building Apps with Content Sharing|Sharing Simple Data
Sharing Simple Data One of the great things about Android applications is their ability to communica ...
- Android小项目之--应用解析 Content Provider-内容提供商(附源码)
上篇 SQLite 的文章讲述了 Andriod 系统的数据库存储读写,本篇将深入解析在 Android系统中如何共享不同应用的数据. 为什么需要 Content Provider? 在 Androi ...
- android开发 android.view.View.OnClickListener和android.content.DialogInterface.OnClickListener冲突...
android开发中,在导入android.content.DialogInterface.OnClickListener 或者android.view.View.OnClickListener的其中 ...
- android工具am的用法,Android中AM、PM、dumpsys命令使用总结
在平时开发中,通过命令行有时候能够快速的帮我们实现一些功能,这里对常用的命令做一些总结. 1.AM命令用法 1.1.简单介绍 am指令是 activity manager的缩写,可以启动Service ...
- android 命令使用详解,Android下pm 命令详解
作者:Sam (甄峰) sam_code@hotmail.com Sam在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下.这 ...
- android工具am的用法,Android am/pm命令用法
am命令的参数介绍: usage: am [subcommand] [options] start an Activity: am start [-D] -D: enable debugging se ...
- Android 系统 (79)---Android应用程序安装过程解析
Android应用程序安装过程解析 Android应用程序安装过程解析 1.程序安装的4大步骤 (1) 拷贝apk文件到指定目录 在Android系统中,apk安装文件是会被保存起来的,默认情况下,用 ...
- android开发桌面源码,android launcher 源码 自己开发启动桌面
/* 5k桌面 源码 作者:基哥 AndroidManifest.xml重要配置: 壁纸背景(三选一): android:theme="@android:style/Theme.Wallpa ...
- android studio 反编译工具,android studio反编译工具jd-inteIIij
Android Studio 自带了Java Bytecode Decompiler 对于第三方的jar只能反编译出其函数名 例如:andbase里的com.kfb.c.jar下的com.kfb.c下 ...
最新文章
- TensorFlow被曝存在严重bug,搭配Keras可能丢失权重,用户反映一个月仍未修复
- 如何简化Exchange 2007 OWA URL访问
- html的li浮动之后往下移动,多个li浮动后居中显示问题
- 深入理解Javascript之执行上下文(Execution Context)
- java委托机制教程_通过反射实现Java下的委托机制代码详解
- 计算机无法安装VC2015,win10 vc++2015一个或多个问题导致了安装失败如何处理
- 【牛客网-公司真题-前端入门篇】——百度2021校招Web前端研发工程师笔试卷(第一批)
- 把树莓派用于YAAW离线下载的Mass Storage U盘用虚拟目录建到Vsftpd的子目录里去
- 湘潭大学信息安全课作业答案4
- Multi-modality Latent Interaction Network for Visual Question Answering阅读笔记
- 越努力越幸福—2015年度总结
- H3C CAS 5.0 虚拟机备份与还原
- R语言广义加性模型GAMs分析温度、臭氧环境数据绘制偏回归图与偏残差图
- 引流是什么? 怎样学习引流?
- 服务器是干什么用的?
- 如何打开.pkl文件,查看.pkl文件里的内容(Python3.6)
- 电脑关不掉计算机窗口,电脑关不掉怎么办?
- Java高级 设计模式
- python中赋值“=”的理解
- 我走了phpchina
热门文章
- 学好单片机必须要了解的的8个电路设计
- Digital System Design_VHDL设计
- apk转换ipa在线转换工具_PDF 格式转换在线网站
- java三点确定圆弧_圆弧方向判断方法和三点确定一个圆的计算方法
- dw怎么做竖线_我花了5分钟,做了一份极“拉风”的PPT
- html去除分页符,Word如何取消分页符
- python爬贴吧回复内容_Python 基础语法+简单地爬取百度贴吧内容
- mysql search yum_mysql安装-yum方式
- Jmeter(二十五)Jmeter之系统函数
- 使用CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 证书和秘钥文件