我们在产品中实现安卓原生下载功能时发现,原来引入的第三方组件react-native-image-picker
在使用他的拍照功能的时候直接崩溃了。
其中,在实现原生组件之前是可以用的,于是开始研究两者之间的关系,后来发现,两个module都引用了同一个jar包。
这个是我们添加的依赖
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.xxxx.xxxx.fileprovider"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="android:authorities">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"
tools:replace="android:resource" />
</provider>
可以看到我们引用了android.support.v4.content.FileProvider
并起了fileprovider
的别名,观察react-native-image-picker
,也引用了这个jar但起了另一个别名provider
。
猜测,有可能是我们的别名覆盖了image-picker的引用,导致调用相机时对象空指针异常,导致app崩溃
我们是这样解决的,将fileprovider
改为provider
,与image-picker一致,重新run,问题解决。