Intereting Posts
Android, Java, создание пропорций для сохранения эскизов Android CTS показывает ShellCommandUnresponsiveException на эмуляторе Preferexternal в манифесте не работает при установке с рынка Переполнение ReferenceTable (max = 512) JNI Android JNI, какой текущий рабочий каталог для исполняемого кода C / C ++? Нажмите в элементе ListView, чтобы изменить статус элементов внутри элемента? Как медийные проигрыватели Android продолжают играть песни, когда приложение закрыто? Кто я сравниваю фоновый ресурс Image TextView с R.drawable.bg_image для коммутатора Как использовать универсальный загрузчик изображений для загрузки ресурсов локально Скрыть тон dtmf во время набора номера Проект Visual Studio 2015 RTM Cordova не будет отлаживать / развертывать в Android, Windows, Windows Phone Что в классах, связанных с деятельностью, используются методы с именем «* Locked ()»? Android SQLite Где и когда инициализировать SQLiteOpenHelper Android: Позвольте пользователю выбрать изображение или видео из галереи SeekBar задает толщину и цвет линии из кода

Загрузка динамического класса с помощью метода Deell для IntelliJ – 64K

Я работаю над проектом, который быстро приближается к пределу метода 64K для файлов dex. Это сообщение блога Android Developer (с июля 2011 года) объясняет, как получить динамическую загрузку классов, работая с созданием командной строки, созданным Ant, но не изучает, как заставить ее работать из IDE (помимо того, что она не будет работать в Eclipse ).

Я огляделся и ничего не нашел, чтобы заставить эту систему работать в IntelliJ. Поддерживает ли IntelliJ создание приложений с несколькими файлами dex? Если да, то как его настроить?

Попробуйте использовать ProGuard для извлечения неиспользуемых классов и методов из вашего проекта, и вы должны (надеюсь) найти, что вам не нужны несколько файлов dex.

Тем не менее, если вы это сделаете: IntelliJ и Eclipse – это только IDE – они не создают собственный код напрямую, поэтому вам нужно будет определить, как строится ваш проект, скорее всего, Ant или Gradle.

Если ваш проект является проектом Gradle, тогда в корне проекта будет файл build.gradle. Если это так, вам нужно будет посмотреть, как это сделать с плагином Android Gradle, хорошее место для начала http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Manipulating-tasks .

Существует два варианта:

  1. Разбить существующий класс. Или
  2. Переместите свой класс в другой проект и создайте его как библиотеку (.jar). И, как сообщают в блоге (упомянутые в запросе), используйте свой класс для загрузки этой библиотеки (.jar) в свой проект отдельно.

Можете ли вы предоставить подробную информацию о своем проекте?

У меня недавно была такая же проблема после подключения библиотеки PlayN к моему проекту. Сначала я прочитал все сообщения, которые вы упомянули, и связанные с ними вещи, но в конце концов я решил проблему, исключив часть классов из зависимого бара Pythagoras (я удалил пакет pythagoras.d, который для «double», поскольку pythagoras.f, Float ", вместо него использовался в PlayN), который был одной из самых больших зависимостей в PlayN.

Возможно, вы можете найти подобное слабое место в зависимостях проекта.

Eclipse может запускать внешние скрипты ant, но это не поможет с инструментами. Лучшая рекомендация – Android Studio и Gradle, так как все команды запускаются вне среды IDE, а затем переносят этот скрипт Ant http://code.google.com/p/android-custom-class-loading-sample/source/browse/ Trunk / android-custom-class-loading-sample / build.xml для градации.

Следите за официальной поддержкой в ​​соответствии с: https://groups.google.com/forum/#!topic/gradle-android-plugin-users/zG_xUeVaV7s

Multidex кажется лучшим (и самым быстрым) вариантом для обращения к пределу метода 65K. В Google есть отличная документация по настройке Multidex.