2014-11-12 5 views
1

Я использую Eclipse, и у меня есть новый проект, использующий версию для Android версии 21 (5.0). Я хочу скомпилировать его, используя Art вместо Dalvik. Что я должен сделать, чтобы достичь этого?Использование Art вместо Dalvik для компиляции

Edit: Причина вопроса состоит в том, что у меня есть эта проблема:

[2014-11-12 10:30:49 - Dex Loader] Unable to execute dex: method ID not in [0, 0xffff]: 65536 
[2014-11-12 10:30:49 - MAMUT] Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 

я ожидал, чем делать, что я решить эту проблему:

Особо следует отметить предложение заключения minSdkVersion 21 dev build - это позволяет вам генерировать многоэкранный вывод постепенно в новом формате ART, что делает его более быстрым итерационным циклом (по крайней мере, на устройствах Android 5.0).

Благодаря

+0

, выполнив «minSdkVersion = 21», ваше приложение работает только на леденец. Я думаю, что это не очень хорошая идея. – Sayem

ответ

2

Особо следует отметить предложение о принятии Dev сборки minSdkVersion 21 - это позволяет генерировать вывод мульти-DEX пошагово в новом формате ART, что делает для гораздо быстрее цикл разработки (по крайней мере, на устройствах Android 5.0).

Это неправильно и следует читать примерно

Особо следует отметить предложение использовать сборки Android Tools 21.1 и выше вместе с Multidex Support Library - это позволяет использовать несколько файлов DEX в dex формат, который не изменился вообще, делая для неизменной разработки.

Проблема формата dex заключается в том, что он не может содержать более 65536 методов. Решение состоит в том, чтобы упростить разбиение вывода на несколько файлов dex. Есть 2 проблемы, которые мы имели в прошлом

  • инструмент dx не был способен производить несколько файлов DEX
  • это очень сложно использовать несколько файлов DEX на устройстве, так как только устройства нагрузки 1 DEX файла и код в других должны быть загружены как-то вручную.

Build tools 21 решить первую проблему, вы можете просто сгенерировать несколько файлов dex, просто добавив флаг -multi-dex к параметрам компиляции.

Библиотека поддержки мультимедиа решает вторую проблему. Он сообщает этим устройствам, как загружать дополнительные файлы dex. И время исполнения ART на Lollipop и выше (4.4 тоже имело АРТ, но не могло сделать то же самое) способно использовать несколько файлов, не сообщая, как это сделать.

Также является официальным документом Building Apps with Over 65K Methods.

+0

Я не знаю, как сказать Eclipse, который устанавливает -multi-dex = true. Я не использую gradle и пытаюсь установить dex.multi.dex = true на project.properties не работает – Plebios

+0

@Plebios, к сожалению, невозможно построить apks с eclipse после того, как вы нажмете на ограничение метода. Плагин Android Eclipse на данный момент не поддерживает. Возможно, в будущем, но я сомневаюсь в этом, потому что они сосредоточены на студиях gradle and android. Если вы хотите продолжить использование Eclipse: создайте скрипт построения градиента и вместо того, чтобы позволить eclipse строить apks, вы делаете это из командной строки или с помощью плагина gradle. Альтернативой является импорт проекта в Android Studio, что делает проект довольно непригодным для Eclipse, но автоматически создает для вас граду. – zapl

+0

Я вижу ... Ну, спасибо за помощь – Plebios

2
I want to compile it using Art instead of Dalvik. 

Искусство и Dalvik не компилятор, они виртуальная машина. Они выполнили байт-код, сгенерированный компилятором (ваше приложение)

+0

Я хочу генерировать Art bytecode вместо Dalvik bytecode – Plebios

+1

вы ничего не должны делать – Blackbelt

+1

@Plebios Байт-код точно такой же, Art vs Dalvik просто разные, как устройство может интерпретировать байт-код. – zapl

Смежные вопросы