[ 
https://issues.apache.org/jira/browse/CB-10673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15174540#comment-15174540
 ] 

ASF GitHub Bot commented on CB-10673:
-------------------------------------

Github user bso-intel commented on the pull request:

    https://github.com/apache/cordova-android/pull/264#issuecomment-190937260
  
    Hi nikhill,
    
    I am not a plugin writer so I don't know whether the plugin write can use 
other tags for their purposes.
    This issue was reported from one of the Intel xdk users who needed to use 
both plugins in his app.
    It looks to me that <source-file> tag is quite frequently used for some 
library files (as Vladimir pointed out).
    Whenever the user complains about this issue, we (Cordova) can't blame the 
plugin developers for not checking with possible conflicts with other plugins.
    I think the users will understand the new warning message (once aded), and 
if any issue arise by skipping/overwriting the existing files, and they can try 
a different order to resolve the issue.
    However, when Cordova CLI throws an exception, it just leaves no option for 
the user. 
    It is going to be a dead end for this use case. 


> overlapped <source-file> target-dir from two different plugins causes a 
> failure.
> --------------------------------------------------------------------------------
>
>                 Key: CB-10673
>                 URL: https://issues.apache.org/jira/browse/CB-10673
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android, iOS, Windows
>            Reporter: Byoungro So
>            Assignee: Byoungro So
>              Labels: pendingPR, triaged
>
> Cordova-android forces the target-dir of the <source-file> tag to be unique 
> for no reason.
> However, this causes an issue.
> It is always possible that two different plugins could have overlapped 
> target-dir path.
> It is impossible for a plugin to know that the target-dir is overlapped with 
> other plugins's target dir.
> So, we should relax this requirement.
> For example, cordova-sqlite-storage has the following in its plugin.xml.
> {code}
>         <source-file src="src/android/libs/armeabi/libsqlc-native-driver.so" 
> target-dir="libs/armeabi"/>
> {code}
> com.intel.security has the following in its plugin.xml.
> {code}
>       <source-file src="src/android/armeabi"  target-dir="libs" />
> {code}
> When adding two plugins, cordova-android throws an exception.
> {code}
> [t6.0.1] cordova plugin add cordova-sqlite-storage@0.7.14
> Fetching plugin "cordova-sqlite-storage@0.7.14" via npm
> Installing "cordova-sqlite-storage" for android
> Installing "cordova-sqlite-storage" for ios
> [t6.0.1] cordova plugin add https://github.com/01org/AppSecurityApi.git#v1.4.1
> Fetching plugin "https://github.com/01org/AppSecurityApi.git"; via git clone
> Repository "https://github.com/01org/AppSecurityApi.git"; checked out to git 
> ref "v1.4.1".
> Installing "com.intel.security" for android
> Failed to install 'com.intel.security':CordovaError: Uh oh!
> "/Users/bso/cordova/test/t6.0.1/platforms/android/libs/armeabi" already 
> exists!
>     at copyNewFile 
> (/Users/bso/cordova/test/t6.0.1/platforms/android/cordova/lib/pluginHandlers.js:212:15)
>     at handlers.source-file.install 
> (/Users/bso/cordova/test/t6.0.1/platforms/android/cordova/lib/pluginHandlers.js:34:13)
>     at Object.ActionStack.process 
> (/Users/bso/cordova/test/t6.0.1/platforms/android/cordova/node_modules/cordova-common/src/ActionStack.js:56:25)
>     at Api.addPlugin 
> (/Users/bso/cordova/test/t6.0.1/platforms/android/cordova/Api.js:205:20)
>     at handleInstall 
> (/Users/bso/cordova/bso-cordova-lib/cordova-lib/src/plugman/install.js:598:6)
>     at 
> /Users/bso/cordova/bso-cordova-lib/cordova-lib/src/plugman/install.js:396:28
>     at _fulfilled 
> (/Users/bso/cordova/bso-cordova-lib/cordova-lib/node_modules/q/q.js:787:54)
>     at self.promiseDispatch.done 
> (/Users/bso/cordova/bso-cordova-lib/cordova-lib/node_modules/q/q.js:816:30)
>     at Promise.promise.promiseDispatch 
> (/Users/bso/cordova/bso-cordova-lib/cordova-lib/node_modules/q/q.js:749:13)
>     at 
> /Users/bso/cordova/bso-cordova-lib/cordova-lib/node_modules/q/q.js:509:49
> Error: Uh oh!
> "/Users/bso/cordova/test/t6.0.1/platforms/android/libs/armeabi" already 
> exists!
> {code}
> I figured the same issue is present in cordova-ios and cordova-windows, too.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to