Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
Android
Description
If two plugins request the same permission they are nicely merged into one line in AndroidManifest.xml.
However, if one of those two has 'android:maxSdkVersion="18"', both lines show up in the resulting AndroidManifest.xml which is not allowed, so the Android build fails.
As an example you can create a Cordova CLI project with the core File plugin and SocialSharing (the latter has the maxSdkVersion set):
cordova create duplicatepermissiontest
cd duplicatepermissiontest
cordova platform add android
cordova plugin add org.apache.cordova.file
cordova plugin add nl.x-services.plugins.socialsharing
cordova prepare
The AndroidManifest.xml now has the duplicate permission.
I think what you'd want is the broader permission to 'win' this fight, so I'd expect the manifest to contain only '<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>'.
Note that I added the maxSdkVersion restriction because according to Google SDK 19+ no longer requires the permission in my case and the permission tends to scare off people using apps with this plugin installed.
I hope you will consider creating something clever to merge these duplicate permissions.
This issue was first reported here: https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin/issues/295
Best,
Eddy