После того, как я добавил следующие зависимости в свой проект 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](https://i.stack.imgur.com/gC4Qu.jpg)
Это Androidпросмотр каталога
![This is the Android directory view](https://i.stack.imgur.com/hdgCP.jpg)