2015-06-09 6 views
10

Ich verwende Bower, um alle Polymerkomponenten herunterzuladen und zu verwalten. Nach dem Hinzufügen des Ordners "bower_components" kann Cordova jedoch nicht mehr erfolgreich erstellt werden.Polymer mit Bower bewirkt, dass in Cordova ein Fehler auftritt

 
:processDebugResources 
     Unable to add 'C:\...\platforms\android\build\intermediates\assets\debug\www\bower_components\web-animations-js\web-animations.min.js.gz': file already in archive (try '-u'?) 
ERROR: unable to process assets while packaging 'C:\...\platforms\android\build\intermediates\res\resources-debug.ap_' 
ERROR: packaging of 'C:\...\platforms\android\build\intermediates\res\resources-debug.ap_' failed 
:processDebugResources FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':processDebugResources'. 
....... 
Error Code: 
     1 
Output: 
       Unable to add 'C:\...\platforms\android\build\intermediates\assets\debug\www\bower_components\web-animations-js\web-animations.min.js.gz': file already in archive (try '-u'?) 
     ERROR: unable to process assets while packaging 'C:\...\platforms\android\build\intermediates\res\resources-debug.ap_' 
     ERROR: packaging of 'C:\...\platforms\android\build\intermediates\res\resources-debug.ap_' failed 


* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug 
option to get more log output. 

BUILD FAILED 

Total time: 13.038 secs 

Es scheint, wie es in/Web-Animationen-js wegen der .gz-Datei ist.

Wie auch immer, es gibt auch viele Dateien und Ordner, die entfernt werden sollten, wie die Ordner "test" und "demo", die beim Herunterladen der Komponenten mit Bower enthalten sind.

Wie soll ich dieses Problem lösen?

Antwort

2

Ich bin mir nicht sicher, warum der Aufbau von Cordova fehlschlägt, aber beantworten Sie Ihre zweite Frage bezüglich der Entfernung von Test/Demo-Dateien, könnten Sie die Cordova hooks verwenden.

Wir verwenden Ionic Framework auf Cordova und es gibt einen interessanten Artikel here über einige Cordova Haken.

So einer der Haken wir verwenden eine Datei 030_clean_dev_files_from_platforms.js befindet sich in der hooks/after_prepare Verzeichnis genannt und enthält folgende Komponenten:

#!/usr/bin/env node 

/** 
* After prepare, files are copied to the platforms/ios and platforms/android folders. 
* Lets clean up some of those files that arent needed with this hook. 
*/ 
var fs = require('fs'); 
var path = require('path'); 


var deleteFolderRecursive = function(removePath) { 
    if(fs.existsSync(removePath)) { 
     fs.readdirSync(removePath).forEach(function(file,index){ 
      var curPath = path.join(removePath, file); 
      if(fs.lstatSync(curPath).isDirectory()) { // recurse 
       deleteFolderRecursive(curPath); 
      } else { // delete file 
       fs.unlinkSync(curPath); 
      } 
     }); 
     fs.rmdirSync(removePath); 
    } 
}; 

var iosPlatformsDir_1 = path.resolve(__dirname, '../../platforms/ios/www/css'); 
var iosPlatformsDir_2 = path.resolve(__dirname, '../../platforms/ios/www/app'); 
var iosPlatformsDir_3 = path.resolve(__dirname, '../../platforms/ios/www/dist/dist_js/app'); 

var androidPlatformsDir_1 = path.resolve(__dirname, '../../platforms/android/assets/www/css'); 
var androidPlatformsDir_2 = path.resolve(__dirname, '../../platforms/android/assets/www/app'); 
var androidPlatformsDir_3 = path.resolve(__dirname, '../../platforms/android/assets/www/dist/dist_js/app'); 

var browserPlatformsDir_1 = path.resolve(__dirname, '../../platforms/browser/www/css'); 
var browserPlatformsDir_2 = path.resolve(__dirname, '../../platforms/browser/www/app'); 
var browserPlatformsDir_3 = path.resolve(__dirname, '../../platforms/browser/www/dist/dist_js/app'); 


deleteFolderRecursive(iosPlatformsDir_1); 
deleteFolderRecursive(iosPlatformsDir_2); 
deleteFolderRecursive(iosPlatformsDir_3); 

deleteFolderRecursive(androidPlatformsDir_1); 
deleteFolderRecursive(androidPlatformsDir_2); 
deleteFolderRecursive(androidPlatformsDir_3); 

deleteFolderRecursive(browserPlatformsDir_1); 
deleteFolderRecursive(browserPlatformsDir_2); 
deleteFolderRecursive(browserPlatformsDir_3); 
4

Ich löschte den gz Datei, die Sie erwähnt und bekam es zu arbeiten. Ich bin mir nicht sicher, was die komplette Lösung ist.

+0

Ja, das funktionierte aber nicht sicher warum, es wäre toll wenn jemand das erklären könnte !! – vinesh