Ted*_*opp 6 file-extension android gzip assets aapt
当我将GZIP-ed文件添加到我的Android项目的资产时,在打包项目时会剥离".gz"扩展名.(例如,我的资产文件夹中的"foo.gz"需要在代码中使用getAssets().open("foo").)这似乎不会发生在我正在使用的其他扩展(例如,".html").资产仍然是GZIP-ed(我必须将输入流包装在GZIPInputStream中以读取它).
这是标准行为还是错误?如果它是标准的,是否有关于哪些扩展被剥离以及哪些被保留的文档?
编辑:我把事情搞错了.我遇到了Eclipse插件的这个问题.我没有尝试直接运行aapt以查看问题是与工具本身有关还是插件使用它的方式.
这里我如何解决它,只需在构建钩子之前做一个科尔多瓦。 https://gist.github.com/josx/fc76006e6d877b17fefd
#!/usr/bin/env node
/**
* Lets clean up some files that conflicts with aapt.
* https://osvaldojiang.com/p/137
* https://github.com/driftyco/ionic/issues/4584
* http://stackoverflow.com/questions/4666098/why-does-android-aapt-remove-gz-file-extension-of-assets
* https://forum.ionicframework.com/t/android-build-failed-ionic-cordova-unable-to-add-asset-file-file-already-in-archive/41146
*/
var glob = require('glob');
var fs = require('fs');
var path = require('path');
var deleteFilesFromFolder = function(globExp) {
// Find files
glob(globExp, function(err,files) {
if (err) throw err;
files.forEach(function(item, index,array) {
console.log(item + " found");
});
// Delete files
files.forEach(function(item, index,array) {
fs.unlink(item, function(err) {
if (err) throw err;
console.log(item + " deleted");
});
});
});
};
var globExp = path.resolve(__dirname, '../../www/lib') + '/**/*.gz';
deleteFilesFromFolder(globExp);
Run Code Online (Sandbox Code Playgroud)