Android studio как поменять версию sdk

Изменение уровня API Android Studio

Я хочу изменить минимальную версию SDK в Android Studio от API 12 до API 14. Я попытался изменить ее в файле манифеста, т. Е.

И восстановление проекта, но я до сих пор получаю Android Studio IDE, вызывая некоторые ошибки. Я полагаю, что мне нужно установить минимальный SDK в «свойствах проекта» или что-то подобное, поэтому среда IDE распознает изменение, но я не могу найти, где это делается в Android Studio.

Когда вы хотите обновить minSdkVersion в существующем проекте …

  1. Обновите build.gradle(Module: app) Убедитесь, что он находится под сценарием Gradle, и он НЕ build.gradle(Project: yourproject) .
  1. Кнопка изменения градуировки
  2. Реконструкция проекта

После обновления minSdkVersion minSdkVersion вам нужно щелкнуть по кнопке, чтобы синхронизировать файл градиента («Sync Project with Gradle files»). Это очистит маркер.

Обновление manifest.xml , например, удаление любых ссылок на уровни SDK в файле манифеста, больше не требуется в Android Studio.

Для пользователей студии Android:

  1. Щелкните правой кнопкой мыши каталог приложения
  2. Выберите параметр «настройка модуля»
  3. Измените платформу ADK как то, что вам нужно
  4. Нажмите Применить

Градул автоматически перестраивает проект.

Поскольку теперь Android Studio стабильна, есть простой способ сделать это.

  1. Щелкните правой кнопкой мыши файл проекта
  2. Выберите «Открыть настройки модуля»
  3. Перейдите на вкладку «Ароматизаторы».

  1. Выберите Min SDK Version из выпадающего списка

PS: Хотя на этот вопрос уже был дан ответ, но Android Studio немного изменила его стабильный выпуск. Таким образом, простой прямой способ поможет любому новому поиску ответа приземлиться здесь.

В студии Android вы можете легко нажать:

  • Ctrl + Shift + Alt + S.
  • Если у вас есть более новая версия android studio чем сначала нажмите на приложение. Чем продолжить с шага 3 следующим образом.
  • Откроется окно с множеством опций
  • Пойдите в Flavors, и это на самом деле все, что вам нужно

Вы также можете изменить versionCode вашего приложения.

В build.gradle измените minSdkVersion 13 на minSdkVersion 8 Это все, что вам нужно сделать. Я решил свою проблему, только сделав это.

В соответствии с этим ответом вы просто не включаете minsdkversion в manifest.xml, и система сборки будет использовать значения из файла build.gradle и помещать информацию в окончательный apk.

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

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

Также отметьте там как минимум два файла build.gradle : один мастер и один для приложения / модуля. Тот, который нужно изменить, находится в приложении / модуле, он уже включает свойство minSdkVersion в недавно созданном проекте.

Если у вас возникли проблемы с указанием целевой SDK для API Google вместо базового пакета SDK, просто измените compileSdkVersion 19 на compileSdkVersion «Google Inc.:Google APIs:19»

Также обновляя манифест, обновите файл build.gradle модуля (он указан в панели проекта чуть ниже манифеста – если в нем нет ключа minSdkVersion , вы смотрите на неправильный, так как есть пара). Восстановить и все должно быть хорошо …

Для меня работала: (щелкните правой кнопкой мыши) project-> android tools-> clear lint markers. Хотя по какой-то причине Manifest вернулась к старому (нижнему) минимальному уровню API, но после того, как я изменил его на новый (более высокий) уровень API, не было красной ошибки, и теперь проект использует новый минимальный уровень API.

Изменить: Извините, я вижу, что вы использовали Android Studio, а не Eclipse. Но я думаю, что в Studio есть похожие «четкие маркеры», и это может решить проблему.

В студии Android откройте build.gradle и отредактируйте следующий раздел:

Здесь вы можете изменить minSdkVersion с 12 до 14

Изменение minSdkVersion в манифесте не требуется. Если вы измените его в файле сборки градации, как показано ниже, вы выполните то, что вам нужно сделать.

Источник

Как изменить версию android и номер версии кода в Android Studio?

Как изменить версию android и номер версии кода Android Studio? Я хочу изменить файл apk (приложение) в Google Play, и мне нужно изменить версию android и номер версии кода. Я пробовал с этим в AndroidManifest.xml-файл в Android Studio:

но это не будет работать. Когда я попытался опубликовать его в Google Play, он отобразил, что я должен изменить имя и код версии android. Помощь Pls.

Читайте также:  Soundfont midi player андроид

9 ответов

поехать в построить.Gradle в и установите код версии и имя внутри defaultConfig элемент

самый простой способ установить версию в Android Studio:

нажмите SHIFT + CTRL+ALT+S (или файл -> структура проекта -> приложение)

выберите вкладку «вкусы»

последние два поля ‘код’ и ‘версии’

вы можете определить свой versionName и versionCode в вашем модуле такой :

нажмите Ctrl+Alt+Shift+S в Android studio или перейдите в файл > структура проекта. Выберите приложение, на левой стороне вкладку и выберите стеариновая кислота на правой стороне по умолчанию config измените код , имя и т. д.

откройте сборку.gradle файл и убедитесь, что у вас есть versionCode и versionName внутри defaultConfig элемент. Если нет, добавьте их. См.этой ссылке для более подробной информации.

вы можете управление версиями приложений мудро С помощью Расширенный Плагин Версии Сборки для Gradle.

вам просто нужно включить плагин в yout build.gradle :

и затем вы можете использовать функции управления версиями (и, очевидно, настройка них):

для получения дополнительной информации, взгляните на официальная документация.

перейти в сборку.gradle и установить код версии и имя внутри элемента defaultConfig

после обновления файла манифеста вместо создания проекта перейдите в командную строку и выберите путь . bld\Debug\платформы\android. Выполните команду «Ant release». Твой новый релиз.apk-файл будет иметь новый код версии.

Источник

ПРОграммирование под Android

Страницы

22 марта 2015 г.

Проблема компиляции в Android Studio при смене версии Android SDK Build-tools

Если обновить Android SDK Build-tools до текущей версии и удалить старую версию, то ваши старые проекты в Andoid Studio перестанут собираться.

Если старый проект был настроен на сборку при помощи допустим Android SDK Build-tools 21.1.2, то при компиляции будет выдаваться вот такая ошибка:

Вылечить это можно двумя способами. Первый это установить обратно SDK Build-tools 21.1.2. Второй поправить файл настроек Gradle. Первый более простой, второй, на мой взгляд, более правильный.

Для этого выбираем Android view (1) и далее файл build-gradle (Module: app) как на рисунке и правим его.

Приводим его к вот такому виду

И запускаем проект

Все работает, НО! Это еще не все! Если вы были внимательны, то в dependencies у нас осталась старая версия (21.0.3), если же мы заходим поменять это на новую (22.0.1), то вылетит куча разных ошибок.

Это менять уже чуть посложнее но тоже можно, если осторожно.

Посмотрим сперва почему вылетает эта ошибка

Но тут вообще все очень не просто. Gradle – это еще тот подарочек! Но разобраться можно.

Если постараться просто поменять названия директорий в соответствии с версией 22.0.1, то есть сделать так, как подсказывает логика

И поменять названия папок как показано на скрине, то вылетят еще вот такие ошибки после компиляции

Это происходит потому, то библиотеки appcompat-v7 имеют чуть другую версию, а именно, в данном случае 22.0.0, это собственно можно увидеть, проследовав по пути указанному в выводе ошибки компиляции.

Там мы увидим примерно такое:

И так чтобы все вообще заработало правильным образом надо привести проект к следующему виду

Источник

Ошибка Android Studio «Установленные средства сборки версии 31.0.0 повреждены»

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

Я просмотрел предложения других сообщений, но ни одно из этих решений не помогло. Вот что я пробовал:

  1. Диспетчер SDK> Инструменты SDK> Установите флажок «Показать сведения о пакете», снимите флажок 31.0.0 и нажмите «Применить»> Удалить 31.0.0> Отметьте 31.0.0 и переустановите его.
  2. В SDK Manager снимите флажок 31.0.0 и попробуйте установить более старую версию (например, я пробовал 30.0.3) и обновите buildToolsVersion в build.gradle до установленной версии.
  3. Перешел в «Структура проекта»> «Свойства» и убедился, что 31.0.0 выбрано для «Версия инструментов сборки» и «Скомпилированная версия SDK».
  4. Вручную удалите файлы из папки build-tools; то есть rm -rf /path/to/android/sdk/build-tools/31.0.0 (он не заканчивается на «-rc», как описано в некоторых других сообщениях)
  5. Перезагрузите Android Studio
  6. Переустановите Android Studio

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

17 ответов

Возникла та же проблема, и она была решена с помощью нескольких изменений строк.

Проверьте панель кода проекта и перейдите в Gradle Scripts -> build.gradle file,

  1. Измените 3 места: compileSdkVersion, buildToolsVersion, targetSdkVersion с 31 на 30
  2. Вы заметите, что на измененных строках появляется лампочка, щелкните и выберите синхронизацию [с версией 30]. Android Studio автоматически загрузит BuildTool V30 и изменит настройки проекта.

Теперь запустите приложение. Меня устраивает

После изменения версии buid на 30.0.3 кажется, что она работает, пока не появится сообщение об ошибке:

Читайте также:  Все карты для сити гид андроид

Приложения, ориентированные на Android 12 и выше, должны указывать явное значение для android:exported , если для соответствующего компонента определен фильтр намерений.

Не знаю, как это исправить.

Посмотрите это видео на UTube .. Проблема решена

Источник

Уровень Android API, обратная и прямая совместимость

Добрый вечер, друзья. Мы подготовили полезный перевод для будущих студентов курса «Android-разработчик. Продвинутый курс». С радостью делимся с вами данным материалом.

Если вы читаете эту статью, значит вас могут интересовать такие вещи, как:

  • Что означает уровень API?
  • Как использовать compileSdkVersion , minSdkVersion или targetSdkVersion ?
  • Как можно гарантировать, что приложение будет работать правильно на устройствах с разными версиями ОС?

Все эти понятия связаны друг с другом, и я постараюсь объяснить их вам в этой статье простым, но эффективным способом.

Для этого необходимо понимать разницу между SDK и API и знать что такое уровень API в экосистеме Android.

Это правда, что в Android между SDK и API существует отношение 1:1, и часто эти два термина используются как синонимы, но важно понимать, что это не одно и то же.

Правильнее говорить, что для каждой версии Android есть SDK и эквивалентный API, а также уровень этого API.

Расшифровывается как Software Development Kit (комплект для разработки программного обеспечения). Обратите внимание на слово «kit» (комплект)… он как раз представляет из себя набор различных инструментов, библиотек, документации, примеров, помогающих разработчикам создавать, отлаживать и запускать приложения для Android. API предоставляется вместе с SDK.

Если открыть SDK Manager в Android Studio, можно будет яснее увидеть, из чего состоит Android SDK.

На первой вкладке SDK Platform перечислены SDK каждой версии Android.

Как показано на рисунке ниже, Android 9.0 SDK (также известный как Pie) содержит:

  • Android SDK Platform 28 (это API фреймворка).
  • Исходный код для Android 28 (это реализация API, как вы видите, она не является обязательной… запомните это).
  • и еще куча других вещей… например, различные системные образы для эмулятора Android.


Обзор SDK в Android Studio SDK Manager.

На второй вкладке SDK Tools показаны другие инструменты, которые также являются частью SDK, но не зависят от версии платформы. Это означает, что они могут быть выпущены или обновлены отдельно.

Расшифровывается как Application Programming Interface (программный интерфейс приложения). Это просто интерфейс, уровень абстракции, который обеспечивает связь между двумя разными «частями» программного обеспечения. Он работает как договор между поставщиком (например, библиотекой) и потребителем (например, приложением).

Это набор формальных определений, таких как классы, методы, функции, модули, константы, которые могут использоваться другими разработчиками для написания своего кода. При этом API не включает в себя реализацию.

Уровень API

Уровень API — это целочисленное значение, однозначно идентифицирующее версию API фреймворка, предлагаемую платформой Android.

Обычно обновления API фреймворка платформы разрабатываются таким образом, чтобы новая версия API оставалась совместимой с более ранними версиями, поэтому большинство изменений в новом API являются аддитивными, а старые части API становятся устаревшими, но не удаляются.

И теперь кто-то может задаться вопросом…

если API Android не предоставляет реализацию, а SDK Manager предлагает необязательный загружаемый исходный код API в составе SDK, то где находится соответствующая реализация?

Ответ прост. На устройстве.

Давайте разберемся с этим…

От исходного кода к APK-файлу

Как правило, проект под Android состоит из кода, написанного разработчиками с использованием Android API (модуль приложения), а также некоторых других библиотек/зависимостей (.jar-файлов, AAR, модулей и т.д.) и ресурсов.

Процесс компиляции преобразует код, написанный на Java или Kotlin, включая зависимости (одна из причин уменьшить ваш код!), в байт-код DEX, а затем сжимает все в файл APK вместе с ресурсами. На данном этапе реализация API не включена в итоговый APK!


Процесс сборки — Android Developers

DEX файлы и Android Runtime


Архитектура Android — Android Developers

Android Runtime — это место, где делается вся грязная работа и где выполняются DEX-файлы. Оно состоит из двух основных компонентов:

  • Виртуальная машина, чтобы воспользоваться преимуществами переносимости кода и независимости от платформы. Начиная с Android 5.0 (Lollipop), старая среда выполнения, Dalvik Virtual Machine, была полностью заменена новой средой Android RunTime (ART). Dalvik использовал JIT-компилятор, тогда как ART использует AOT (Ahead of time) компиляцию плюс JIT для профилирования кода во время выполнения.
  • Базовые библиотеки — это стандартные библиотеки Java и Android. Проще говоря, именно здесь находится реализация API.

Версия API, доступная на этом уровне, соответствует версии платформы Android, на которой запущено приложение.

Например, если на фактическом устройстве установлен Android 9 (Pie), доступны все API до 28 уровня.

Если вам понятны ключевые моменты работы Android Runtime и какова роль API, то должно быть достаточно просто понять обратную и прямую совместимость, а так же использование compileSdkVersion , minSdkVersion и targetSdkVersion .

Читайте также:  Cheat pubg mobile android skachat

compileSdkVersion

Это значение используется только для указания Gradle, с какой версией SDK компилировать ваше приложение. Это позволяет разработчикам получить доступ ко всем API, доступным до уровня API, установленного для compileSdkVersion .

Настоятельно рекомендуется выполнить компиляцию с последней версией SDK:

  • высокий уровень API позволяет разработчикам использовать преимущества последнего API и возможностей, предоставляемых новыми платформами.
  • чтобы использовать последнюю версию SupportLibrary , compileSdkVersion должен соответствовать версии SupportLibrary .

Например, чтобы использовать SupportLibrary-28.x.x , compileSdkVersion также должен быть равен 28.

  • для перехода на AndroidX или его использования, compileSdkVersion должен быть установлен как минимум равным 28.
  • чтобы быть готовым удовлетворить требования целевого уровня API от Google Play. В Google объявили, что для более быстрого распространения новых версий Android на рынке Google каждый год будет устанавливать минимальный целевой уровень API для новых приложений и обновлений. Больше информации вы можете найти здесь и здесь.

Приложения Android совместимы с новыми версиями платформы Android, поскольку изменения в API обычно являются аддитивными, а старое API может стать устаревшим, но не удаленным.

Это означает, что прямая совместимость в основном гарантируется платформой, и при запуске приложения на устройстве с более высоким уровнем API, чем тот, который указан в compileSdkVersion , не возникает никаких проблем во время выполнения, приложение будет работать так же, как и ожидалось, на более новых версиях платформы.

Приложение + compileSdkVersion = 26 и метод API xyz() , представленный в API 26 уровня, могут работать на устройстве с Android 8 Oreo (API 26 уровня).

Это же приложение может работать на устройстве с Android 9 Pie (API 28 уровня), поскольку метод API xyz() все еще доступен на API 28 уровня.

minSdkVersion

Это значение обозначает минимальный уровень API, на котором приложение может работать. Это минимальное требование. Если не указан, значением по умолчанию является 1.

Разработчики обязаны установить корректное значение и обеспечить правильную работу приложения до этого уровня API. Это называется обратной совместимостью.

Во время разработки Lint также предупредит разработчиков при попытке использовать любой API ниже указанного в minSdkVersion . Очень важно не игнорировать предупреждения и исправить их!

Чтобы обеспечить обратную совместимость, разработчики могут во время выполнения проверять версию платформы и использовать новый API в более новых версиях платформы и старый API в более старых версиях или, в зависимости от случая, использовать некоторые статические библиотеки, которые обеспечивают обратную совместимость.

Также важно упомянуть, что Google Play Store использует это значение, чтобы определить, можно ли установить приложение на определенное устройство, сопоставив версию платформы устройства с minSdkVersion приложения.

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

Выбор «правильного» значения для проекта также является бизнес-решением, поскольку оно влияет на то, насколько большой будет аудитория приложения. Посмотрите на распределение платформ.

Приложение + compileSdkVersion = 26 + minSdkVersion = 22 и метод API xyz() , представленный в API 26 уровня, могут работать на устройстве с Android 8 Oreo (API 26 уровня).

Это же приложение можно установить и запустить на более старом устройстве с Android 5.1 Lollipop (API 22 уровня), где метода API xyz() не существует. Если разработчики не обеспечили обратную совместимость ни с помощью проверок времени выполнения, ни с помощью каких-либо библиотек, то приложение будет аварийно завершать работу, как только оно попытается получить доступ к методу API xyz() .

targetSdkVersion

Это значение указывает уровень API, на котором приложение было разработано.

Не путайте его с compileSdkVersion . Последний используется только во время компиляции и делает новые API доступными для разработчиков. Первый, напротив, является частью APK (также как и minSdkVersion ) и изменяет поведение среды выполнения. Это способ, которым разработчики могут контролировать прямую совместимость.

Иногда могут быть некоторые изменения API в базовой системе, которые могут повлиять на поведение приложения при работе в новой среде выполнения.

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

Простым примером является Runtime Permission, которое было представлено в Android 6 Marshmallow (API 23 уровня).

Приложение может быть скомпилировано с использованием API 23 уровня, но иметь целевым API 22 уровня, если оно еще не готово поддержать новую модель разрешений времени выполнения.

Таким образом, приложение может по-прежнему быть совместимым без включения нового поведения среды выполнения.

В любом случае, как уже упоминалось, Google требует, чтобы приложения удовлетворяли новым требованиям целевого уровня API, поэтому всегда следует иметь высокий приоритет для обновления этого значения.

Теперь соединяя все это вместе, мы видим четкое отношение

minSdkVersion ≤ targetSdkVersion ≤ compileSdkVersion

Имейте в виду, что настоятельно рекомендуется выполнить компиляцию в соответствии с последним уровнем API и стараться использовать targetSdkVersion == compileSdkVersion.

Источник

Оцените статью