NativeScript - Невозможно разместить запрошенные классы в одном файле dex. - PullRequest
0 голосов
/ 29 июня 2018

Я работаю над приложением, использующим последнюю версию NativeScript с Angular. Я добавил в свой проект большинство плагинов для пользовательского интерфейса и добавил плагин Firbase.

Когда я запускаю «tns run android», я получаю ошибку:

«D8: невозможно разместить запрошенные классы в одном файле dex. Попробуйте предоставить список основных dex. ”

Кроме того, сборка занимает более 5 минут. Я занимался поиском, но не могу найти причину этой проблемы. Кто-нибудь знает, что не так?

1 Ответ

0 голосов
/ 30 июня 2018

После долгих проб и ошибок я наконец пришел к решению. Во всех других прочитанных мной ответах говорилось, что для свойства multiDexEnabled должно быть установлено значение true в файле build.gradle проекта Android.

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

Однако в your_project_root/app/App_resources/Android есть два файла, settings.gradle и settings.json.

settings.gradle используется для создания файла build.gradle ваших проектов из свойств, которые вы указали в settings.json.

Итак, к шаблону строки defaultConfig в settings.gradle я добавил:

if(__multiDexEnabled__) {
    multiDexEnabled = __multiDexEnabled__
}

И к объекту JSON, определенному в settings.json, я добавил:

"multiDexEnabled": true

После этого я удалил папку платформ моего проекта и запустил:

> tns platforms add android
> tns run android

И мое приложение запустилось на моем телефоне без проблем.

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