Компиляция системы Android на Linux Mint - PullRequest
0 голосов
/ 27 февраля 2019

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

javac: invalid source release: 1.7s
Usage: javac <options> <source files>
make: *** [out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes-full-debug.jar] Error 41
#### make failed to build some targets (03:04 (mm:ss)) ####

, когда я проверяю свою версию java и javac, я получаю это:

javac 1.7.0_161
java version "1.7.0_161"
OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK 64-Bit Server VM (build 24.161-b01, mixed mode)

, которая, кажется, является правильной версией для моегоsystem

Я установил JAVA_HOME и ANDROID_JAVA_HOME по следующим путям в файле bash.rc

echo $ANDROID_JAVA_HOME   
/usr/lib/jvm/java-7-openjdk-amd64

echo $JAVA_HOME
/usr/lib/jvm/java-7-openjdk-amd64

, но, похоже, ничего не работает, и я продолжаю получать ту же ошибку.Может кто-нибудь мне помочь?тх

1 Ответ

0 голосов
/ 27 февраля 2019

Настройка вашего проекта для Instant Run. Android Studio по умолчанию включает Instant Run для проектов, созданных с использованием плагина Android для Gradle 2.3.0 и выше.

Чтобы обновить существующий проект последней версией плагина:

Откройте диалоговое окно «Настройки» или «Настройки».Перейдите к пункту «Сборка, выполнение, развертывание> Мгновенный запуск» и нажмите «Обновить проект», как показано на рисунке 4.

Если опция обновления проекта не отображается, она уже обновлена ​​до последней версии плагина Androidдля Gradle.Но убедитесь, что установлен флажок Enable Instant Run.

Рисунок 4. Обновление плагина Android для Gradle для существующего проекта

Чтобы начать использовать Instant Run, вам также необходимо изменитьСоздайте вариант для отладочной версии вашего приложения и разверните его на целевом устройстве под управлением Android 5.0 (уровень API 21) или выше.Чтобы узнать больше о методах, ускоряющих сборку, ознакомьтесь с разделом Оптимизация скорости сборки

Исключение проекта из Защитника Windows В системах Windows Защитник Windows может вызывать замедления при использовании Instant Run.Если вы используете Защитника Windows, вы должны исключить папку проекта Android Studio из проверок вредоносного ПО Защитника Windows.

Сократить время сборки при использовании Crashlytics. Если ваша версия подключаемого модуля Fabric Gradle ниже 1.21.6, Crashlytics можетвызвать более медленное время сборки.Чтобы повысить производительность сборки при разработке приложения, вы можете либо обновить плагин до последней версии, либо отключить Crashlytics для варианта отладочной сборки.

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

Приложения не запускаются на некоторых физических устройствах. Некоторые производители устройств блокируют автоматический запуск приложений после установки на устройство.При развертывании приложения на физическом устройстве с использованием Android Studio 2.3 это ограничение нарушает предполагаемое поведение Instant Run и приводит к следующей ошибке: Ошибка: не найдено;служба не запущенаЧтобы устранить эту проблему, обновите Android Studio до версии 2.3.1 или выше.

В режиме отладки всегда используются «холодные» замены. В Android Studio 2.3, если вы развертываете свое приложение, нажимая «Отладка», нажимая последующие изменения кода, нажимая «Применить изменения всегда»приводит к холодному обмену.Чтобы узнать больше, перейдите к выпуску # 234401.

Развертывание на нескольких устройствах Instant Run использует различные методы для выполнения «горячей», «горячей» и «холодной» замены, которые соответствуют уровню API целевого устройства.По этой причине при развертывании приложения на нескольких устройствах одновременно Android Studio временно отключает мгновенный запуск.

Мультидексирование вашего приложения Если для minSdkVersion установлено значение 21 или выше, Instant Run автоматически настраивает ваше приложение на мультидекс.Поскольку Instant Run работает только с отладочной версией вашего приложения, вам может потребоваться настроить приложение для мультидекса при развертывании варианта сборки выпуска.

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

Во время профилирования приложения следует отключить мгновенный запуск.При использовании Instant Run наблюдается небольшое влияние на производительность и немного большее при переопределении методов с помощью горячей замены.Это влияние на производительность может повлиять на информацию, предоставляемую инструментами профилирования производительности.Кроме того, методы-заглушки, генерируемые при каждой горячей замене, могут усложнять трассировку стека.

Использование сторонних плагинов Android Studio временно отключает библиотеку Java Code Coverage (JaCoCo) и ProGuard при использовании Instant Run.Поскольку Instant Run работает только с отладочными сборками, это не влияет на сборку релиза.

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

Внесение изменений в многопроцессорные приложения. Мгновенный запуск только контролирует основной процесс вашего приложения для выполнения «горячих» и «горячих» замен.При отправке изменений кода в другие процессы приложения, например изменений в реализации метода или существующего ресурса, Instant Run выполняет холодную замену.

Запуск приложения в рабочем профиле Если вы запускаете приложение с Instant Run иоткройте ваше приложение, используя рабочий профиль (или другой дополнительный профиль), ваше приложение будет аварийно завершено, потому что инструментальные DEX-файлы, используемые Instant Run, доступны только из пространства пользователя основного профиля.

Если вы хотите продолжить использовать InstantВыполните, просто не открывайте свое приложение с рабочим профилем и убедитесь, что в конфигурации запуска не используется флаг --user user_id.

Если вам нужно использовать приложение с рабочим профилем, мы рекомендуем создатьновая конфигурация запуска, которая включает флаг --user user_id, указывающий идентификатор пользователя рабочего профиля.Вы можете найти идентификатор пользователя, выполнив команду adb shell pm list users из командной строки.Когда вы используете флаг --user, Android Studio отключает мгновенный запуск только для этого развертывания;Мгновенный запуск снова будет работать при переключении на конфигурацию без флага --user.

Отключить мгновенный запуск Чтобы отключить мгновенный запуск:

Откройте диалоговое окно «Настройки» или «Предпочтения».Перейдите к Построить, Выполнение, Развертывание> Мгновенный запуск.Снимите флажок «Включить мгновенный запуск».

...