2015-08-08 121 views
2

我已经为我的Cordova project添加了一个Java代码(适用于Android)的插件。现在可以在plugins文件夹下以及platforms/android文件夹下找到相同的java文件。不幸的是,当我编辑插件文件夹中的代码并构建应用程序时,平台文件夹下的代码不会更改,仿真的应用程序也不会更新。我还需要做点别的吗?我在哪里编辑科尔多瓦的插件Java代码?

更新

好,似乎也没有“自动”的方式来更新平台文件夹中的代码。必须重新添加它。请参阅Cordova 3.5, how to update local plugin?In Phonegap/Cordova 3.0+, is there any way to refresh plugins after you make changes?

或者有人知道更好的方法吗?

回答

0

您使用cmd添加插件或为您的cordova项目手动添加插件。

可以直接添加使用CMD插件,在目录中,直接命中插件URL选择项目例:科尔多瓦插件添加nl.x-services.plugins.socialsharing

,并自动添加所有的插件文件,即插件权限。

+0

我使用命令行添加了插件('cordova plugin add https:// github.com/Red-Folder/bgs-sample.git')。但插件只是一个模板(请参阅https://github.com/Red-Folder/bgs-core/wiki/Using-the-MyService-Sample)。在plugins文件夹中编辑模板(Java文件)后,不幸的是不能更新platforms文件夹中的相应文件。 – Zardoz

0

这是旧的,但我正在寻找,这是一个没有答案。如果你有你创建的插件,你可以添加目录而不是url。所以,如果你有在github上的模板,需要修改你需要复制它,进行更改,并添加使用:

cordova plugin add /path/to/plugin --nofetch 

看到docs for cordova cli

我认为你会需要每次都执行这条命令进行更改并在此之前,你需要删除插件:如果你创建简单的节点脚本,将执行此

cordova plugin remove com.example.plugin.name 

可以加快速度时,文件的更改:

var watch = require('watch'); 
var exec = require('child_process').exec; 
if (process.argv.length == 4) { 
    var name = process.argv[2] 
    var path = process.argv[3]; 
    watch.watchTree(path, function() { 
     var cmd = 'cordova plugin remove ' + name + 
      ' && cordova plugin add ' + path + ' --nofetch'; 
     console.log(cmd); 
     exec(cmd, function (error, stdout, stderr) { 
      if (error !== null) { 
       console.log('exec error: ' + error); 
      } else { 
       console.log('done'); 
      } 
     }); 
    }); 
} else { 
    console.log('usage: ' + process.argv[1] + ' [NAME] [PATH]'); 
} 

然后就可以保存是plugin.js和运行(从科尔多瓦应用程序路径):

node plugin.js com.example.plugin.name /path/to/plugin 

当你把更多然后一个插件,它会工作。在你运行它,你需要执行:

npm install -g watch 

或:

npm install --save-dev watch 

科尔多瓦申请已的package.json文件,所以这种依赖性将被保存在那里。