Построить проект без подключения к интернету - PullRequest
0 голосов
/ 28 июня 2018

У меня есть проект, который требуется для работы в автономном режиме без подключения к Интернету по соображениям безопасности. Мой androidStudio определен в автономном режиме. Когда я запускаю сборку релиз через Task / build / assemblyRelease, все работает просто отлично, и я собираю свой apk. Но при запуске через командную строку:

gradlew --offline assembleRelease

Я получаю кучу ошибок, чем нет обналиченной версии этого и того. Когда я исправляю одну ошибку и копирую некоторые файлы в кэш, я получаю новую ошибку, чего-то еще не хватает.

Итак, как происходит сборка релиза через androidStudio? Как я могу запустить ту же команду через cmd или удаленно, потому что, кажется, есть весь необходимый кэш. В чем отличие работающей ассемблерной версии от студии против cmd?

Также я знаю простое решение, запустите его один раз в Интернете, и тогда оно будет работать. Не могу ...

Так как мой компьютер способен создавать APK в целом, как я могу сделать это без androidStudio только через cmd или удаленно?

1 Ответ

0 голосов
/ 01 июля 2018

Прежде всего, меня очень удивляет, что вы можете создать свой проект с помощью Android Studio, но не вызывая Gradle напрямую. Различные версии Gradle могут быть одной из причин, но поскольку вы уже используете оболочку Gradle, это маловероятно. Возможно, Android Studio не настроена на использование оболочки.


Однако я бы категорически не советовал копировать зависимости между кешами Gradle разных систем. Вместо этого я бы посоветовал вам собрать необходимые зависимости в автономном хранилище, например flatDir хранилище :

repositories {
    flatDir name: 'offlineRepository', dirs: "C:/path/to/repository"
}

К сожалению, flatDir репозитории не поддерживают транзитивные зависимости из файлов дескрипторов, таких как файлы Maven .pom, но вы также можете определить maven или ivy репозитории для локального расположения файловой системы:

repositories {
    maven {
        name = 'offlineRepository'
        url = uri('file:///c:/path/to/repository')
    }
}

Если будет возможно построить ваш проект как из онлайн, так и из вашей конкретной автономной среды, вы можете подумать об определении сценария инициализации на вашем локальном компьютере, который заменит любой определенный репозиторий вашим автономным репозиторием. .

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