今天碰到了个奇怪的问题,在调用相机时闪退了,此时宝宝的内心是崩溃的😖,还好在费了九牛二虎之力后最终把它给解决了,步骤如下:
步骤一:
在Manifest文件中加上这么一句话
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.packagename.fileProvider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
注意了:
packagename改为自己的包名,如com.google.news
步骤二:
在res目录下新建文件夹xml,然后在xml文件夹下新建名为file_paths的xml文件
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="external_files"
path="." />
</paths>
步骤三:
把之前的Uri.fromFile
改为
FileProvider.getUriForFile(context,
context.packageName + ".packagename.fileProvider", file)
注意:packagename仍然要改为自己的包名,别忘了packagename前面的.
,这里主要和Manifest文件中声明的android:authorities
保持一致
最后注明:
此方法为API24所有,所以如果minSdkVersion
小于24的话要做判断,判断方法如下:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
} else {
}
改完之后会发现此时又可以愉快的玩耍啦😜!!!