Eclipse Export Signed Package добавляет каталог drawables дважды, удваивая размер apk! - PullRequest
4 голосов
/ 27 мая 2011

Я заметил это примерно с 2.1. Я полагаю, что проблема в плагине Eclipse Export to APK или где-то в моей настройке (хотя я понятия не имею, где это может быть).

В принципе, внезапно мои размеры APK удвоились! Некоторые исследования показали, что Eclipse теперь включает в себя каталог drawable (и каталоги raw, layout и xml) дважды. Он включается один раз в подкаталог res, а второй - в корневой каталог приложения.

Таким образом, вместо структуры каталогов, такой как:

- com
- META-INF
- res
  - drawable
  - layout
  - raw
  - xml
...

У меня есть:

- com
- drawable
- layout
- META-INF
- raw
- res
  - drawable
  - layout
  - raw
  - xml
- values
- values-fr
- xml

Кто-нибудь еще испытывал это? Кто-нибудь знает, почему это может быть? Это увеличило размер моего приложения с 3 МБ до более 6 МБ, что очень важно.

Мой текущий обходной путь - экспортировать неподписанный пакет с помощью eclipse, удалить файлы drawable, layout, raw и xml из корневого каталога, затем вручную подписать его и zipalign.

Если вы хотите посмотреть на apk, проверьте этот apk (с проблемой) и этот apk (который я исправил вручную) . Оба работают, один в два раза больше.

Я использую Eclipse SDK, Версия: 3.5.2, Идентификатор сборки: M20100211-1343, Версия Android Toolkit: 10.0.1.v201103111512-110841, хотя у меня возникла проблема с последней парой ADT, начиная с версии 2.1 вышел. Кажется, не имеет значения, для какого уровня APK я компилирую.

Спасибо за любую помощь, понимание!

1 Ответ

4 голосов
/ 06 ноября 2011

Я наконец решил это!

По какой-то причине в моем файле .classpath произошла ошибка. Я никогда не редактировал этот файл сам, но во всех миграциях между машинами, версиями Eclipse и версиямиSDK, он, должно быть, поскользнулся.

Он читал:

    <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="res"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

Изменение его на:

    <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

Исправлена ​​проблема.Yippee!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...