Exception of type 'Java.Lang.NullPointerException' was thrown.
看Android源代码,发现问题出在
java.lang.NullPointerException
at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:243)
at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:217)
at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:130)
parsePathStrategy函数中:
final ProviderInfo info = context.getPackageManager().resolveContentProvider(authority, PackageManager.GET_META_DATA);
得到的info为null.
看代码看了好久,没有找到问题,最后发现是AndroidManifest.xml文件问题。
原因:
provider 写到了application 外面.
<manifest ...>
<application ...>
<activity ...>
</activity>
</application>
<provider ...>
</provider>
</manifest>
正确的应该是下面这样.
<manifest ...>
<application ...>
<activity ...>
</activity>
<provider ...>
</provider>
</application>
</manifest>