Почему Android aapt удаляет расширение файла .gz? - PullRequest
6 голосов
/ 12 января 2011

Когда я добавляю файл GZIP-ed в ресурсы моего проекта Android, расширение ".gz" удаляется при упаковке проекта.(Так, например, «foo.gz» в моей папке ресурсов должен быть доступен в коде с использованием getAssets().open("foo").) Это не происходит с другими расширениями (например, «.html»), которые я использую,Актив все еще GZIP-ed (мне нужно обернуть входной поток в GZIPInputStream, чтобы прочитать его).

Это стандартное поведение или ошибка?Если это стандарт, есть ли документация о том, какие расширения удаляются, а какие сохраняются?

РЕДАКТИРОВАТЬ: Я неправильно искажал вещи.Я испытываю эту проблему с плагином Eclipse.Я не пробовал запускать aapt напрямую, чтобы увидеть, связана ли проблема с самим инструментом или с тем, как его использует плагин.

1 Ответ

0 голосов
/ 14 января 2016

Вот как я это решаю, просто делаю кордову до сборки хука.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
 * /3490491/pochemu-android-aapt-udalyaet-rasshirenie-faila-gz
 * 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);
...