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

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

Github user nikhilkh commented on the pull request:

    https://github.com/apache/cordova-android/pull/264#issuecomment-190947034
  
    My concern with silently passing here is that there could be a 
runtime/build failure because potentially the wrong version of the file is 
added depending on the order of adding pluigns or even worse the same filename 
has completely different source code.
    
    Fixing those runtime or gradle build failure might not be a pleasant 
experience either for the user. There is no good solution for this - but 
working with the conflicting plugins to change where they add those files. For 
commonly used libraries, they should just use the `framework` element as that 
handles scenarios around multiple plugins adding common libraries.


> 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 [email protected]
> Fetching plugin "[email protected]" 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to