Не удается загрузить мгновенное приложение в консоль Google Play с общим сообщением

Я работаю над обновлением приложения до предварительной версии в консоли Google Play. Когда я пытаюсь загрузить zip-файл, я получаю сообщение об ошибке «Ошибка загрузки. Не удалось сохранить ваши изменения. Повторите попытку». Я работал над этим много дней и чувствую, что у меня закончились варианты, чтобы попробовать. Кто-нибудь еще испытывал это, особенно в отношении мгновенных приложений? В моем приложении есть base_feature, main_feature и detail_feature.

Я выполнил следующее:

  • Файлы build.gradle были настроены так же, как и пример проекта Google.
  • Я пытаюсь использовать proguard, задав для minifyEnabled значение true для каждого функционального модуля. Мои правила proguard настроены для каждой функции, и у меня нет предупреждений или ошибок при сборке.
  • Размер каждого APK-файла base + feature составляет менее 4 МБ.
  • Я безуспешно пытался загрузить в режиме инкогнито, а также в другом браузере. Я могу загрузить свой обычный APK (также защищенный) нормально.
  • И установленный APK, и мгновенное приложение имеют одинаковый код / ​​имя версии и один и тот же пакет.

Я не понимаю, что могло вызвать эту ошибку. Обычно консоль выводит причину, по которой загрузка не удалась. Есть ли что-то особенное, что должно совпадать между полностью загруженным APK и мгновенным APK-файлом приложения? Надеюсь, есть простое решение, которое я упускаю из виду. Любая помощь будет очень признательна!

РЕДАКТИРОВАТЬ

база:

dependencies {
    api(...)
    api(...)
    api(...)
    api(...)

    feature project(':home')
    feature project(':detail')
    application project(':apk')
}

дом:

dependencies {
    api project(':base')
    api(...)
}

деталь:

dependencies {
    api project(':base')
    api(...)
}

мгновенное приложение:

dependencies {
    implementation project(':base')
    implementation project(':home')
    implementation project(':detail')
}

apk:

dependencies {
    implementation project(':base')
    implementation project(':home')
    implementation project(':detail')
}

person Josh Logier    schedule 24.07.2017    source источник
comment
Имея такую ​​же проблему.   -  person Jintin    schedule 25.07.2017
comment
Кажется, делает это в канале разработки, а также под охраной или нет. У меня есть APK, который сейчас находится в разработке, но теперь я вообще не могу его обновить.   -  person Josh Logier    schedule 25.07.2017
comment
На данный момент это сообщение не имеет четкого определения. Одна из возможных проблем связана с вашими манифестами. Есть ли в вашем манифесте что-нибудь, что ссылается на ресурс? (некоторые поля могут быть запрещены) - покажите, пожалуйста, все ваши манифесты?   -  person TWL    schedule 27.07.2017
comment
@TWL Я не могу поделиться манифестами, но я проверил их и удалил почти все, кроме действий и фильтров намерений URL-адресов ссылок приложений. Ничего не получилось.   -  person Josh Logier    schedule 27.07.2017
comment
Попробуйте также удалить ссылки на ресурсы для любых полей ‹data› (включая ссылки на приложения).   -  person TWL    schedule 28.07.2017
comment
@TWL Единственные ссылки на ресурсы в любом из манифестов находятся в тегах ‹activity› или ‹application›, то есть в имени приложения, значке запуска и т. Д. Есть ли конкретное соглашение об именах для каждой функции? Мои похожи на com.xxx.xxx.base, com.xxx.xxx.feature.home, com.xxx.xxx.feature.detail и com.xxx.xxx для модуля приложения.   -  person Josh Logier    schedule 28.07.2017
comment
Это не должно иметь отношения к именам ваших пакетов. Вы ранее упоминали «сохранить для ... фильтров намерений URL-адресов ссылок приложений», так что теперь они жестко запрограммированы, да? (Другая возможность - это конфигурация ваших зависимостей; сейчас это довольно сложный танец. Можете ли вы показать свой dependencies{ } для каждого файла gradle?)   -  person TWL    schedule 29.07.2017
comment
@TWL Да, все поля ‹data› жестко запрограммированы. Я обновил свой пост dependencies { } блоками. Спасибо за вашу помощь.   -  person Josh Logier    schedule 31.07.2017
comment
@TWL Я также добавлю, что, похоже, проблема в чем-то фундаментальном или ориентирована на сборку / манифест, потому что, если я не защищу сборку, я получаю ту же общую ошибку, даже если моя базовая + функция превышает 4 МБ. Раньше я получал ошибку, связанную с размером APK, но эта проблема обнаруживается до этой проверки.   -  person Josh Logier    schedule 31.07.2017
comment
Ах, это похоже на многофункциональный модуль Google. В любом из ваших манифестов помечает ли AS какие-либо значения красным цветом как «Неразрешенный класс»? Например (в примере Google) манифест детали: MainActivity в android:parentActivityName выделен красным цветом, и чтобы исправить это: добавьте implementation project(':main') в градацию детали.   -  person TWL    schedule 01.08.2017
comment
@TWL В моем проекте ничего не отмечено красным. Я пытался основывать структуру на примере Google, но он немного отличается. На самом деле я не создавал их проект, так как просто следовал руководству и при необходимости возвращался к их проекту. Я также имел в виду демонстрацию мгновенного приложения willowtreeapps вместе с их учебником, однако между тем, как структурированы оба проекта, есть некоторые различия. Мне удалось без проблем загрузить многофункциональный модуль Google и загрузить его в консоль разработчика. Я начну с нуля, используя проект Google в качестве шаблона, и отчитаюсь.   -  person Josh Logier    schedule 01.08.2017
comment
@TWL Итак, я смог получить сборку для загрузки сейчас, переместив ВСЕ зависимости библиотеки в базовую функцию. Я старался сделать каждую функцию как можно меньше, распространяя соответствующие библиотеки только на их конкретный модуль. Разве это не разрешено?   -  person Josh Logier    schedule 02.08.2017


Ответы (1)


Я смог решить свою проблему, переместив ВСЕ ссылки на внешние библиотеки (API / реализация) в базовую функцию. Похоже, что каждая функция не может размещать библиотеки, которые используются только в этой конкретной функции.

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

person Josh Logier    schedule 02.08.2017
comment
Когда я пытаюсь загрузить приложение с мгновенным запуском, у меня появляется такое же общее сообщение: «Ошибка загрузки. Не удалось сохранить ваши изменения. Пожалуйста, попробуйте еще раз.' Я поместил все зависимости в базовый модуль, единственная зависимость, которая мне нужна в функциональном модуле, - это dagger-compiler для внедрения зависимостей annotationProcessor (com.google.dagger: dagger-compiler: $ {daggerVersion}) Не знаю, что сделать / изменить, чтобы иметь возможность загружать приложение с мгновенным запуском в Google Play - person Ragaisis; 04.11.2017