Зависимость испортила сборку приложения для Android во Flutter - PullRequest
0 голосов
/ 01 мая 2018

TL; DR

После добавления url_launcher к моему pubspec я больше не могу запускать свое приложение в Android. При запуске я получаю следующий вывод в Logcat: Didn't find class "$prefix.$projectname.MainActivity" on path: DexPathList[[zip file "/data/app/..., где $prefix.$projectname - неправильный пакет, потому что я изменил его на $prefix.$name, где name - некоторая другая строка.

Мое приложение запускается нормально, как только я снова удаляю url_launcher.


Всестороннее

Когда только добавляет url_launcher в мой файл pubspec.yaml, мое приложение не может запуститься на Android . Мне даже не нужно использовать ничего из этого в моем коде.

После дальнейших исследований я нашел сообщение в журнале Logcat для Android: Didn't find class "$prefix.$projectname.MainActivity" on path: DexPathList[[zip file "/data/app/.... И это источник ошибки!

Я изменил имя моего пакета после создания проекта, потому что Flutter все еще глючит :) В мастере создания я набрал $prefix.$name ( это просто переменные; prefix всегда одно и то же, как и два других, для справки посмотрите на сообщение об ошибке, где я также вставил его . В моей первой сборке имя пакета оказалось тогда $packagename.$projectname. Обходной путь для этого: изменение имени каталога кодов в каталоге Android src и изменение applicationId имени в build.gradle.

Так что теперь мое имя пакета $prefix.$name. Мой Android Studio имя проекта / папка все еще projectname, хотя. Без url_launcher в моем pubspec все работает нормально, но при его добавлении каталог создается следующим образом:

Без url_launcher:

project/build/app:
    -generated
    -intermediates
    -outputs
    -tmp

После добавления url_launcher в каталоге build неожиданно появляется другой каталог (кроме app):

project/build/app:
    -generated
    -intermediates
    -outputs
    -tmp
project/build/url_launcher:
    -generated
    -intermediates
    -outputs
    -tmp

Каталог url_launcher в каталоге build имеет те же подкаталоги, что и каталог app. Я просто упоминаю об этом, потому что я не уверен, является ли это нежелательным поведением или нет.

1 Ответ

0 голосов
/ 01 мая 2018

Как я узнал из этого ответа Мне также нужно изменить атрибут package для тега <manifest в файле AndroidManifest.xml, и мне дополнительно нужно было изменить package в MainActivity.java сама.

Интересно, как это вообще могло работать, если не использовать url_launcher. Я предполагаю, что рабочие настройки все еще были очевидны в папке build, то есть в уже созданных файлах .class и .dex.

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