我使用Phonegap Build,使用这组插件:
<gap:plugin name="org.apache.cordova.file" version="1.0.1" />
<gap:plugin name="org.apache.cordova.file-transfer" version="0.4.2" />
<gap:plugin name="org.chromium.zip" version="1.0.0" />
我只想将持久目录中的文件解压缩到临时文件夹。由于它发出FileNotFoundException
错误,我在解压缩之前添加了一个新行来创建该文件夹。虽然控制台日志显示最近创建的文件夹名称,但仍然会出现相同的错误。
以下是代码:
var relativeFilePath = "Mydir/myfile.zip";
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function (fs){
var entry=fs.root;
entry.getDirectory("Destination", {create: true, exclusive: false}, function(dir){
console.log("Created dir "+dir.name);
zip.unzip(fileSystem.root.toURL() + relativeFilePath, fs.root.toURL() + 'Destination/', function(){
alert("unzipped!");
});
},function(error){
alert(error.code);
});
},function(err){
alert(err.code);
});
},function(err){
alert(err.code);
});
错误追溯:
07-03 11:42:32.039: E/Zip(12711): Doesn't exist
07-03 11:42:32.039: E/Zip(12711): An error occurred while unzipping.
07-03 11:42:32.039: E/Zip(12711): java.io.FileNotFoundException: File: "cdvfile://localhost/temporary/Destination/" not found
07-03 11:42:32.039: E/Zip(12711): at org.apache.cordova.Zip.unzipSync(Zip.java:57)
07-03 11:42:32.039: E/Zip(12711): at org.apache.cordova.Zip.access$000(Zip.java:19)
07-03 11:42:32.039: E/Zip(12711): at org.apache.cordova.Zip$1.run(Zip.java:35)
07-03 11:42:32.039: E/Zip(12711): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-03 11:42:32.039: E/Zip(12711): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-03 11:42:32.039: E/Zip(12711): at java.lang.Thread.run(Thread.java:841)
我可以使用this newer zip plugin从cordova的命令行开始工作。但我无法使用它,而此版本未包含在Phonegap Build plugin repository中。
我如何解决这个问题,甚至更好,是否可以在Phonegap Build中使用最后提到的插件?
非常感谢