Flutter - Получение 64K методов DEX Ошибка из директории проекта Flutter, но не из директории проекта Android - PullRequest
0 голосов
/ 09 февраля 2019

После того, как я добавил следующие зависимости в свой проект Flutter :

cloud_firestore: ^0.9.0   
firebase_auth: ^0.8.0+1   
google_sign_in: ^4.0.0

Я попытался запустить приложение, нажав кнопку run в Android Studio , но здесь происходит нечто странное:

Случай 1: Если я открою корневую директорию проекта Flutter из Android Studio Давайте назовем его каталогом my_flutter_app и нажмем кнопку run . Я получаю следующую ошибку:

D8: не удается разместить запрошенные классы в одном файле dex(# методы: 68762> 65536) java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: ошибка при объединении dex-архивов: число ссылок на методы в файле .dex не может превышать 64 КБ.

Примечание: Я прекрасно понимаю, что означает эта ошибка и как ее устранить, фактически, если я добавлю известную строку для ее устранения:

multiDexEnabled true

При наличии соответствующих зависимостей приложение отлично работает и разворачиваетсяподключиться к устройству без ошибок.

Но странность заключается в следующем:

Случай 2: Если я открою каталог android того же приложения Flutter из Android Studio , я имею в виду каталог my_flutter_app / android , и нажмите кнопку run , приложение прекрасно встраивается и развертывается на устройстве безполучать какие-либо ошибки.(Да, без изменения каких-либо файлов, один и тот же сценарий для обоих случаев, без строки multiDexEnabled true)

Итак, я хочу знать, что здесь происходит?Почему Android-проект не не показывает мне, что DEX-ошибка 64K методов, в то время как Flutter делает?

Я пытаюсь сохранить свойразрабатывать вещи как можно более чистыми, поэтому я не решаюсь добавить эту строку multiDexEnabled true, если в этом нет необходимости, поэтому в этом причина моего вопроса.

EDIT: Вот содержимое длякаждый каталог:

Это представление корневого каталога Flutter

This is the Flutter root directory view

Это Androidпросмотр каталога

This is the Android directory view

1 Ответ

0 голосов
/ 09 февраля 2019

классов в одном файле dex (# методов: 68762> 65536)

Это ясно говорит о том, что число методов выше допустимого числа методов для одного файла dex (64K).

Итак, чтобы исправить это, вы должны включить мультидекс в файле Gradle или удалить ненужные или неиспользуемые сторонние библиотеки из проекта.

Если вы спросите, почему это происходит только в Android Studio?тогда причиной могут быть некоторые базовые классы по умолчанию, которые загружаются в Android Studio.

enter image description here

...